﻿2026-06-10T22:49:44.6290914Z ##[group]Run ./traceable-reqs check --json
2026-06-10T22:49:44.6291229Z [36;1m./traceable-reqs check --json[0m
2026-06-10T22:49:44.6303577Z shell: /usr/bin/bash -e {0}
2026-06-10T22:49:44.6303793Z ##[endgroup]
2026-06-10T22:49:44.6764823Z {
2026-06-10T22:49:44.6765304Z   "schemaVersion": 1,
2026-06-10T22:49:44.6765676Z   "summary": {
2026-06-10T22:49:44.6766010Z     "requirementCount": 181,
2026-06-10T22:49:44.6766412Z     "completeCount": 181,
2026-06-10T22:49:44.6766774Z     "incompleteCount": 0,
2026-06-10T22:49:44.6767135Z     "findingCount": 0
2026-06-10T22:49:44.6767497Z   },
2026-06-10T22:49:44.6767781Z   "requirements": [
2026-06-10T22:49:44.6768096Z     {
2026-06-10T22:49:44.6768406Z       "id": "REQ-API-1",
2026-06-10T22:49:44.6769231Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-10T22:49:44.6769974Z       "requiredStages": [
2026-06-10T22:49:44.6770579Z         "impl",
2026-06-10T22:49:44.6771098Z         "unit",
2026-06-10T22:49:44.6771637Z         "int"
2026-06-10T22:49:44.6772338Z       ],
2026-06-10T22:49:44.6772804Z       "stages": {
2026-06-10T22:49:44.6773298Z         "doc": {
2026-06-10T22:49:44.6791062Z           "complete": false,
2026-06-10T22:49:44.6791419Z           "evidence": []
2026-06-10T22:49:44.6791656Z         },
2026-06-10T22:49:44.6791885Z         "impl": {
2026-06-10T22:49:44.6792071Z           "complete": true,
2026-06-10T22:49:44.6792272Z           "evidence": [
2026-06-10T22:49:44.6792448Z             {
2026-06-10T22:49:44.6792644Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T22:49:44.6792920Z               "line": 15
2026-06-10T22:49:44.6793096Z             }
2026-06-10T22:49:44.6793264Z           ]
2026-06-10T22:49:44.6793420Z         },
2026-06-10T22:49:44.6793579Z         "int": {
2026-06-10T22:49:44.6793787Z           "complete": true,
2026-06-10T22:49:44.6794000Z           "evidence": [
2026-06-10T22:49:44.6794194Z             {
2026-06-10T22:49:44.6794394Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T22:49:44.6794657Z               "line": 13
2026-06-10T22:49:44.6794843Z             }
2026-06-10T22:49:44.6795019Z           ]
2026-06-10T22:49:44.6795192Z         },
2026-06-10T22:49:44.6795362Z         "unit": {
2026-06-10T22:49:44.6795549Z           "complete": true,
2026-06-10T22:49:44.6795753Z           "evidence": [
2026-06-10T22:49:44.6795948Z             {
2026-06-10T22:49:44.6796141Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T22:49:44.6796383Z               "line": 442
2026-06-10T22:49:44.6796573Z             },
2026-06-10T22:49:44.6796758Z             {
2026-06-10T22:49:44.6796952Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T22:49:44.6797191Z               "line": 448
2026-06-10T22:49:44.6797390Z             },
2026-06-10T22:49:44.6797562Z             {
2026-06-10T22:49:44.6797754Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T22:49:44.6797986Z               "line": 515
2026-06-10T22:49:44.6798177Z             }
2026-06-10T22:49:44.6798364Z           ]
2026-06-10T22:49:44.6798534Z         }
2026-06-10T22:49:44.6798717Z       }
2026-06-10T22:49:44.6798893Z     },
2026-06-10T22:49:44.6799140Z     {
2026-06-10T22:49:44.6799315Z       "id": "REQ-API-2",
2026-06-10T22:49:44.6799633Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-10T22:49:44.6799996Z       "requiredStages": [
2026-06-10T22:49:44.6800204Z         "impl",
2026-06-10T22:49:44.6800396Z         "unit",
2026-06-10T22:49:44.6800577Z         "int"
2026-06-10T22:49:44.6800763Z       ],
2026-06-10T22:49:44.6801255Z       "stages": {
2026-06-10T22:49:44.6801440Z         "doc": {
2026-06-10T22:49:44.6801632Z           "complete": false,
2026-06-10T22:49:44.6801837Z           "evidence": []
2026-06-10T22:49:44.6802087Z         },
2026-06-10T22:49:44.6802341Z         "impl": {
2026-06-10T22:49:44.6802550Z           "complete": true,
2026-06-10T22:49:44.6802846Z           "evidence": [
2026-06-10T22:49:44.6803146Z             {
2026-06-10T22:49:44.6803675Z               "path": "crates/spt-store/src/history.rs",
2026-06-10T22:49:44.6803932Z               "line": 15
2026-06-10T22:49:44.6804149Z             },
2026-06-10T22:49:44.6804393Z             {
2026-06-10T22:49:44.6804683Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.6805040Z               "line": 20
2026-06-10T22:49:44.6805326Z             },
2026-06-10T22:49:44.6805574Z             {
2026-06-10T22:49:44.6805846Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.6806195Z               "line": 139
2026-06-10T22:49:44.6806475Z             },
2026-06-10T22:49:44.6806725Z             {
2026-06-10T22:49:44.6807011Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.6807371Z               "line": 21
2026-06-10T22:49:44.6807650Z             },
2026-06-10T22:49:44.6807897Z             {
2026-06-10T22:49:44.6808184Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.6808532Z               "line": 38
2026-06-10T22:49:44.6808823Z             },
2026-06-10T22:49:44.6809080Z             {
2026-06-10T22:49:44.6809287Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.6809525Z               "line": 190
2026-06-10T22:49:44.6809714Z             },
2026-06-10T22:49:44.6809880Z             {
2026-06-10T22:49:44.6810084Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.6810323Z               "line": 232
2026-06-10T22:49:44.6810507Z             },
2026-06-10T22:49:44.6810675Z             {
2026-06-10T22:49:44.6810876Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.6811118Z               "line": 262
2026-06-10T22:49:44.6811313Z             },
2026-06-10T22:49:44.6811481Z             {
2026-06-10T22:49:44.6811676Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.6811909Z               "line": 17
2026-06-10T22:49:44.6812106Z             },
2026-06-10T22:49:44.6812272Z             {
2026-06-10T22:49:44.6812474Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.6812714Z               "line": 30
2026-06-10T22:49:44.6812906Z             },
2026-06-10T22:49:44.6813087Z             {
2026-06-10T22:49:44.6813282Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.6813520Z               "line": 63
2026-06-10T22:49:44.6813711Z             },
2026-06-10T22:49:44.6813878Z             {
2026-06-10T22:49:44.6814074Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.6814312Z               "line": 76
2026-06-10T22:49:44.6814507Z             }
2026-06-10T22:49:44.6814685Z           ]
2026-06-10T22:49:44.6814850Z         },
2026-06-10T22:49:44.6815016Z         "int": {
2026-06-10T22:49:44.6815205Z           "complete": true,
2026-06-10T22:49:44.6815405Z           "evidence": [
2026-06-10T22:49:44.6815581Z             {
2026-06-10T22:49:44.6815787Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T22:49:44.6816035Z               "line": 14
2026-06-10T22:49:44.6816239Z             },
2026-06-10T22:49:44.6817566Z             {
2026-06-10T22:49:44.6817779Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T22:49:44.6818034Z               "line": 187
2026-06-10T22:49:44.6818215Z             }
2026-06-10T22:49:44.6818372Z           ]
2026-06-10T22:49:44.6818525Z         },
2026-06-10T22:49:44.6818682Z         "unit": {
2026-06-10T22:49:44.6818855Z           "complete": true,
2026-06-10T22:49:44.6819145Z           "evidence": [
2026-06-10T22:49:44.6819331Z             {
2026-06-10T22:49:44.6819683Z               "path": "crates/spt-store/src/history.rs",
2026-06-10T22:49:44.6819993Z               "line": 42
2026-06-10T22:49:44.6820255Z             },
2026-06-10T22:49:44.6820498Z             {
2026-06-10T22:49:44.6820777Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.6821112Z               "line": 254
2026-06-10T22:49:44.6821363Z             },
2026-06-10T22:49:44.6821587Z             {
2026-06-10T22:49:44.6822046Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.6822380Z               "line": 438
2026-06-10T22:49:44.6822652Z             },
2026-06-10T22:49:44.6822894Z             {
2026-06-10T22:49:44.6823165Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.6823513Z               "line": 449
2026-06-10T22:49:44.6823776Z             },
2026-06-10T22:49:44.6824009Z             {
2026-06-10T22:49:44.6824291Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.6824634Z               "line": 581
2026-06-10T22:49:44.6824906Z             },
2026-06-10T22:49:44.6825134Z             {
2026-06-10T22:49:44.6825415Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.6825769Z               "line": 593
2026-06-10T22:49:44.6826037Z             },
2026-06-10T22:49:44.6826267Z             {
2026-06-10T22:49:44.6826538Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.6826877Z               "line": 141
2026-06-10T22:49:44.6827163Z             },
2026-06-10T22:49:44.6827395Z             {
2026-06-10T22:49:44.6827668Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.6828020Z               "line": 185
2026-06-10T22:49:44.6828277Z             }
2026-06-10T22:49:44.6828515Z           ]
2026-06-10T22:49:44.6828747Z         }
2026-06-10T22:49:44.6829046Z       }
2026-06-10T22:49:44.6829285Z     },
2026-06-10T22:49:44.6829524Z     {
2026-06-10T22:49:44.6829782Z       "id": "REQ-API-3",
2026-06-10T22:49:44.6830130Z       "title": "commune/signoff are file-drops, not commands",
2026-06-10T22:49:44.6830558Z       "requiredStages": [
2026-06-10T22:49:44.6830834Z         "impl",
2026-06-10T22:49:44.6831077Z         "unit",
2026-06-10T22:49:44.6831313Z         "int"
2026-06-10T22:49:44.6831547Z       ],
2026-06-10T22:49:44.6831786Z       "stages": {
2026-06-10T22:49:44.6832043Z         "doc": {
2026-06-10T22:49:44.6832292Z           "complete": false,
2026-06-10T22:49:44.6832587Z           "evidence": []
2026-06-10T22:49:44.6832858Z         },
2026-06-10T22:49:44.6833097Z         "impl": {
2026-06-10T22:49:44.6833354Z           "complete": true,
2026-06-10T22:49:44.6833627Z           "evidence": [
2026-06-10T22:49:44.6833887Z             {
2026-06-10T22:49:44.6834168Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T22:49:44.6834517Z               "line": 27
2026-06-10T22:49:44.6834778Z             },
2026-06-10T22:49:44.6835027Z             {
2026-06-10T22:49:44.6835308Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.6835571Z               "line": 372
2026-06-10T22:49:44.6835834Z             }
2026-06-10T22:49:44.6836074Z           ]
2026-06-10T22:49:44.6836287Z         },
2026-06-10T22:49:44.6836517Z         "int": {
2026-06-10T22:49:44.6836783Z           "complete": true,
2026-06-10T22:49:44.6837069Z           "evidence": [
2026-06-10T22:49:44.6837330Z             {
2026-06-10T22:49:44.6837612Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T22:49:44.6837965Z               "line": 261
2026-06-10T22:49:44.6838218Z             }
2026-06-10T22:49:44.6838457Z           ]
2026-06-10T22:49:44.6838687Z         },
2026-06-10T22:49:44.6838913Z         "unit": {
2026-06-10T22:49:44.6839235Z           "complete": true,
2026-06-10T22:49:44.6839516Z           "evidence": [
2026-06-10T22:49:44.6839784Z             {
2026-06-10T22:49:44.6840070Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T22:49:44.6840408Z               "line": 242
2026-06-10T22:49:44.6840666Z             },
2026-06-10T22:49:44.6841258Z             {
2026-06-10T22:49:44.6841537Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.6841897Z               "line": 622
2026-06-10T22:49:44.6842164Z             }
2026-06-10T22:49:44.6842407Z           ]
2026-06-10T22:49:44.6842651Z         }
2026-06-10T22:49:44.6842871Z       }
2026-06-10T22:49:44.6843094Z     },
2026-06-10T22:49:44.6843309Z     {
2026-06-10T22:49:44.6843553Z       "id": "REQ-ARCH-1",
2026-06-10T22:49:44.6844038Z       "title": "Many small acyclically-layered crates",
2026-06-10T22:49:44.6844438Z       "requiredStages": [
2026-06-10T22:49:44.6844709Z         "impl"
2026-06-10T22:49:44.6844957Z       ],
2026-06-10T22:49:44.6845196Z       "stages": {
2026-06-10T22:49:44.6845445Z         "doc": {
2026-06-10T22:49:44.6845711Z           "complete": false,
2026-06-10T22:49:44.6846007Z           "evidence": []
2026-06-10T22:49:44.6846273Z         },
2026-06-10T22:49:44.6846511Z         "impl": {
2026-06-10T22:49:44.6846763Z           "complete": true,
2026-06-10T22:49:44.6847052Z           "evidence": [
2026-06-10T22:49:44.6847314Z             {
2026-06-10T22:49:44.6847585Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-10T22:49:44.6847930Z               "line": 16
2026-06-10T22:49:44.6848192Z             },
2026-06-10T22:49:44.6848435Z             {
2026-06-10T22:49:44.6848711Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-10T22:49:44.6849131Z               "line": 12
2026-06-10T22:49:44.6849407Z             },
2026-06-10T22:49:44.6849649Z             {
2026-06-10T22:49:44.6849919Z               "path": "crates/spt-store/src/lib.rs",
2026-06-10T22:49:44.6850263Z               "line": 12
2026-06-10T22:49:44.6850526Z             }
2026-06-10T22:49:44.6850758Z           ]
2026-06-10T22:49:44.6850997Z         },
2026-06-10T22:49:44.6851226Z         "int": {
2026-06-10T22:49:44.6851480Z           "complete": false,
2026-06-10T22:49:44.6851770Z           "evidence": []
2026-06-10T22:49:44.6852035Z         },
2026-06-10T22:49:44.6852277Z         "unit": {
2026-06-10T22:49:44.6852529Z           "complete": false,
2026-06-10T22:49:44.6852816Z           "evidence": []
2026-06-10T22:49:44.6853078Z         }
2026-06-10T22:49:44.6853310Z       }
2026-06-10T22:49:44.6853669Z     },
2026-06-10T22:49:44.6853903Z     {
2026-06-10T22:49:44.6854150Z       "id": "REQ-ARCH-2",
2026-06-10T22:49:44.6854526Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-10T22:49:44.6854964Z       "requiredStages": [
2026-06-10T22:49:44.6855236Z         "impl"
2026-06-10T22:49:44.6875676Z       ],
2026-06-10T22:49:44.6875891Z       "stages": {
2026-06-10T22:49:44.6876080Z         "doc": {
2026-06-10T22:49:44.6876276Z           "complete": false,
2026-06-10T22:49:44.6876491Z           "evidence": []
2026-06-10T22:49:44.6876680Z         },
2026-06-10T22:49:44.6876848Z         "impl": {
2026-06-10T22:49:44.6877029Z           "complete": true,
2026-06-10T22:49:44.6877229Z           "evidence": [
2026-06-10T22:49:44.6877416Z             {
2026-06-10T22:49:44.6877629Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-10T22:49:44.6877877Z               "line": 18
2026-06-10T22:49:44.6878065Z             }
2026-06-10T22:49:44.6878234Z           ]
2026-06-10T22:49:44.6878391Z         },
2026-06-10T22:49:44.6878556Z         "int": {
2026-06-10T22:49:44.6878738Z           "complete": false,
2026-06-10T22:49:44.6879058Z           "evidence": []
2026-06-10T22:49:44.6879443Z         },
2026-06-10T22:49:44.6879852Z         "unit": {
2026-06-10T22:49:44.6880096Z           "complete": false,
2026-06-10T22:49:44.6880378Z           "evidence": []
2026-06-10T22:49:44.6880607Z         }
2026-06-10T22:49:44.6880797Z       }
2026-06-10T22:49:44.6880989Z     },
2026-06-10T22:49:44.6881177Z     {
2026-06-10T22:49:44.6881376Z       "id": "REQ-ARCH-3",
2026-06-10T22:49:44.6881766Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-10T22:49:44.6882182Z       "requiredStages": [
2026-06-10T22:49:44.6882673Z         "impl",
2026-06-10T22:49:44.6882879Z         "unit"
2026-06-10T22:49:44.6883083Z       ],
2026-06-10T22:49:44.6883287Z       "stages": {
2026-06-10T22:49:44.6883484Z         "doc": {
2026-06-10T22:49:44.6883706Z           "complete": false,
2026-06-10T22:49:44.6883966Z           "evidence": []
2026-06-10T22:49:44.6884201Z         },
2026-06-10T22:49:44.6884410Z         "impl": {
2026-06-10T22:49:44.6884629Z           "complete": true,
2026-06-10T22:49:44.6885029Z           "evidence": [
2026-06-10T22:49:44.6885253Z             {
2026-06-10T22:49:44.6885516Z               "path": "crates/spt-proto/src/version.rs",
2026-06-10T22:49:44.6885826Z               "line": 34
2026-06-10T22:49:44.6886056Z             },
2026-06-10T22:49:44.6886265Z             {
2026-06-10T22:49:44.6886502Z               "path": "crates/spt-proto/src/version.rs",
2026-06-10T22:49:44.6886799Z               "line": 41
2026-06-10T22:49:44.6887027Z             }
2026-06-10T22:49:44.6887222Z           ]
2026-06-10T22:49:44.6887432Z         },
2026-06-10T22:49:44.6887622Z         "int": {
2026-06-10T22:49:44.6887842Z           "complete": false,
2026-06-10T22:49:44.6888085Z           "evidence": []
2026-06-10T22:49:44.6888310Z         },
2026-06-10T22:49:44.6888486Z         "unit": {
2026-06-10T22:49:44.6888663Z           "complete": true,
2026-06-10T22:49:44.6888861Z           "evidence": [
2026-06-10T22:49:44.6889121Z             {
2026-06-10T22:49:44.6889317Z               "path": "crates/spt-proto/src/version.rs",
2026-06-10T22:49:44.6889565Z               "line": 51
2026-06-10T22:49:44.6889746Z             },
2026-06-10T22:49:44.6889918Z             {
2026-06-10T22:49:44.6890103Z               "path": "crates/spt-proto/src/version.rs",
2026-06-10T22:49:44.6890337Z               "line": 71
2026-06-10T22:49:44.6890524Z             },
2026-06-10T22:49:44.6890690Z             {
2026-06-10T22:49:44.6890877Z               "path": "crates/spt-proto/src/version.rs",
2026-06-10T22:49:44.6891110Z               "line": 83
2026-06-10T22:49:44.6891295Z             }
2026-06-10T22:49:44.6891459Z           ]
2026-06-10T22:49:44.6891629Z         }
2026-06-10T22:49:44.6891790Z       }
2026-06-10T22:49:44.6891946Z     },
2026-06-10T22:49:44.6892103Z     {
2026-06-10T22:49:44.6892275Z       "id": "REQ-ARCH-4",
2026-06-10T22:49:44.6892551Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-10T22:49:44.6892856Z       "requiredStages": [
2026-06-10T22:49:44.6893056Z         "impl",
2026-06-10T22:49:44.6893233Z         "unit"
2026-06-10T22:49:44.6893405Z       ],
2026-06-10T22:49:44.6893571Z       "stages": {
2026-06-10T22:49:44.6893739Z         "doc": {
2026-06-10T22:49:44.6893915Z           "complete": false,
2026-06-10T22:49:44.6894107Z           "evidence": []
2026-06-10T22:49:44.6894290Z         },
2026-06-10T22:49:44.6894452Z         "impl": {
2026-06-10T22:49:44.6894630Z           "complete": true,
2026-06-10T22:49:44.6894827Z           "evidence": [
2026-06-10T22:49:44.6895008Z             {
2026-06-10T22:49:44.6895213Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6895457Z               "line": 82
2026-06-10T22:49:44.6895638Z             },
2026-06-10T22:49:44.6895804Z             {
2026-06-10T22:49:44.6896001Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6896233Z               "line": 96
2026-06-10T22:49:44.6896419Z             },
2026-06-10T22:49:44.6896582Z             {
2026-06-10T22:49:44.6896772Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6897016Z               "line": 116
2026-06-10T22:49:44.6897195Z             },
2026-06-10T22:49:44.6897359Z             {
2026-06-10T22:49:44.6897548Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6897782Z               "line": 131
2026-06-10T22:49:44.6897968Z             },
2026-06-10T22:49:44.6898134Z             {
2026-06-10T22:49:44.6898321Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6898560Z               "line": 181
2026-06-10T22:49:44.6898856Z             }
2026-06-10T22:49:44.6899093Z           ]
2026-06-10T22:49:44.6899256Z         },
2026-06-10T22:49:44.6899417Z         "int": {
2026-06-10T22:49:44.6899592Z           "complete": false,
2026-06-10T22:49:44.6899796Z           "evidence": []
2026-06-10T22:49:44.6899977Z         },
2026-06-10T22:49:44.6900144Z         "unit": {
2026-06-10T22:49:44.6900320Z           "complete": true,
2026-06-10T22:49:44.6900625Z           "evidence": [
2026-06-10T22:49:44.6900807Z             {
2026-06-10T22:49:44.6900997Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6901221Z               "line": 242
2026-06-10T22:49:44.6901404Z             },
2026-06-10T22:49:44.6901569Z             {
2026-06-10T22:49:44.6901752Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6901980Z               "line": 252
2026-06-10T22:49:44.6902166Z             },
2026-06-10T22:49:44.6902336Z             {
2026-06-10T22:49:44.6902534Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6902778Z               "line": 263
2026-06-10T22:49:44.6902958Z             },
2026-06-10T22:49:44.6903126Z             {
2026-06-10T22:49:44.6903312Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6903544Z               "line": 274
2026-06-10T22:49:44.6903727Z             },
2026-06-10T22:49:44.6903883Z             {
2026-06-10T22:49:44.6904070Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6904304Z               "line": 286
2026-06-10T22:49:44.6904484Z             },
2026-06-10T22:49:44.6904638Z             {
2026-06-10T22:49:44.6904827Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6905054Z               "line": 299
2026-06-10T22:49:44.6905235Z             },
2026-06-10T22:49:44.6905397Z             {
2026-06-10T22:49:44.6905583Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6905806Z               "line": 310
2026-06-10T22:49:44.6905988Z             },
2026-06-10T22:49:44.6906149Z             {
2026-06-10T22:49:44.6906340Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6906566Z               "line": 327
2026-06-10T22:49:44.6906746Z             },
2026-06-10T22:49:44.6906909Z             {
2026-06-10T22:49:44.6907080Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.6907313Z               "line": 358
2026-06-10T22:49:44.6907491Z             }
2026-06-10T22:49:44.6907656Z           ]
2026-06-10T22:49:44.6907823Z         }
2026-06-10T22:49:44.6907970Z       }
2026-06-10T22:49:44.6908123Z     },
2026-06-10T22:49:44.6908271Z     {
2026-06-10T22:49:44.6908428Z       "id": "REQ-CLI-1",
2026-06-10T22:49:44.6909610Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-10T22:49:44.6910781Z       "requiredStages": [
2026-06-10T22:49:44.6910980Z         "impl",
2026-06-10T22:49:44.6911148Z         "unit"
2026-06-10T22:49:44.6911320Z       ],
2026-06-10T22:49:44.6911500Z       "stages": {
2026-06-10T22:49:44.6911673Z         "doc": {
2026-06-10T22:49:44.6911844Z           "complete": false,
2026-06-10T22:49:44.6912049Z           "evidence": []
2026-06-10T22:49:44.6912235Z         },
2026-06-10T22:49:44.6912392Z         "impl": {
2026-06-10T22:49:44.6912569Z           "complete": true,
2026-06-10T22:49:44.6912759Z           "evidence": [
2026-06-10T22:49:44.6912935Z             {
2026-06-10T22:49:44.6913113Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6913338Z               "line": 193
2026-06-10T22:49:44.6913519Z             },
2026-06-10T22:49:44.6913681Z             {
2026-06-10T22:49:44.6913857Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6914186Z               "line": 799
2026-06-10T22:49:44.6914368Z             },
2026-06-10T22:49:44.6914526Z             {
2026-06-10T22:49:44.6914701Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6914922Z               "line": 1105
2026-06-10T22:49:44.6915112Z             },
2026-06-10T22:49:44.6915274Z             {
2026-06-10T22:49:44.6915453Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6915790Z               "line": 2246
2026-06-10T22:49:44.6915967Z             }
2026-06-10T22:49:44.6916124Z           ]
2026-06-10T22:49:44.6916286Z         },
2026-06-10T22:49:44.6916448Z         "int": {
2026-06-10T22:49:44.6916629Z           "complete": false,
2026-06-10T22:49:44.6916825Z           "evidence": []
2026-06-10T22:49:44.6917010Z         },
2026-06-10T22:49:44.6917173Z         "unit": {
2026-06-10T22:49:44.6917383Z           "complete": true,
2026-06-10T22:49:44.6917573Z           "evidence": [
2026-06-10T22:49:44.6917746Z             {
2026-06-10T22:49:44.6917940Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6918169Z               "line": 5370
2026-06-10T22:49:44.6918349Z             }
2026-06-10T22:49:44.6918512Z           ]
2026-06-10T22:49:44.6918674Z         }
2026-06-10T22:49:44.6918831Z       }
2026-06-10T22:49:44.6919056Z     },
2026-06-10T22:49:44.6919212Z     {
2026-06-10T22:49:44.6919380Z       "id": "REQ-CLI-2",
2026-06-10T22:49:44.6920166Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-10T22:49:44.6920945Z       "requiredStages": [
2026-06-10T22:49:44.6921145Z         "impl",
2026-06-10T22:49:44.6921312Z         "unit"
2026-06-10T22:49:44.6921474Z       ],
2026-06-10T22:49:44.6921627Z       "stages": {
2026-06-10T22:49:44.6921803Z         "doc": {
2026-06-10T22:49:44.6921984Z           "complete": false,
2026-06-10T22:49:44.6922185Z           "evidence": []
2026-06-10T22:49:44.6922361Z         },
2026-06-10T22:49:44.6922514Z         "impl": {
2026-06-10T22:49:44.6922690Z           "complete": true,
2026-06-10T22:49:44.6922882Z           "evidence": [
2026-06-10T22:49:44.6923076Z             {
2026-06-10T22:49:44.6923281Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.6923528Z               "line": 345
2026-06-10T22:49:44.6923716Z             },
2026-06-10T22:49:44.6923884Z             {
2026-06-10T22:49:44.6924083Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-10T22:49:44.6924336Z               "line": 78
2026-06-10T22:49:44.6924523Z             },
2026-06-10T22:49:44.6924688Z             {
2026-06-10T22:49:44.6924880Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T22:49:44.6925124Z               "line": 239
2026-06-10T22:49:44.6925304Z             },
2026-06-10T22:49:44.6925472Z             {
2026-06-10T22:49:44.6925662Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6925899Z               "line": 337
2026-06-10T22:49:44.6926094Z             },
2026-06-10T22:49:44.6926259Z             {
2026-06-10T22:49:44.6926437Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6926669Z               "line": 842
2026-06-10T22:49:44.6926856Z             },
2026-06-10T22:49:44.6927018Z             {
2026-06-10T22:49:44.6927203Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6927423Z               "line": 1296
2026-06-10T22:49:44.6927623Z             },
2026-06-10T22:49:44.6927790Z             {
2026-06-10T22:49:44.6927972Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6928200Z               "line": 1375
2026-06-10T22:49:44.6928386Z             },
2026-06-10T22:49:44.6928549Z             {
2026-06-10T22:49:44.6928729Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6929030Z               "line": 1436
2026-06-10T22:49:44.6929358Z             }
2026-06-10T22:49:44.6929529Z           ]
2026-06-10T22:49:44.6929692Z         },
2026-06-10T22:49:44.6929858Z         "int": {
2026-06-10T22:49:44.6930045Z           "complete": false,
2026-06-10T22:49:44.6930265Z           "evidence": []
2026-06-10T22:49:44.6930454Z         },
2026-06-10T22:49:44.6930622Z         "unit": {
2026-06-10T22:49:44.6930807Z           "complete": true,
2026-06-10T22:49:44.6931012Z           "evidence": [
2026-06-10T22:49:44.6931357Z             {
2026-06-10T22:49:44.6931567Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T22:49:44.6931820Z               "line": 309
2026-06-10T22:49:44.6932019Z             },
2026-06-10T22:49:44.6932197Z             {
2026-06-10T22:49:44.6932391Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6932630Z               "line": 5508
2026-06-10T22:49:44.6932822Z             }
2026-06-10T22:49:44.6933007Z           ]
2026-06-10T22:49:44.6933174Z         }
2026-06-10T22:49:44.6933355Z       }
2026-06-10T22:49:44.6933521Z     },
2026-06-10T22:49:44.6933685Z     {
2026-06-10T22:49:44.6933864Z       "id": "REQ-CLI-3",
2026-06-10T22:49:44.6934653Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-10T22:49:44.6935469Z       "requiredStages": [
2026-06-10T22:49:44.6935666Z         "impl",
2026-06-10T22:49:44.6935845Z         "unit"
2026-06-10T22:49:44.6936013Z       ],
2026-06-10T22:49:44.6936189Z       "stages": {
2026-06-10T22:49:44.6936361Z         "doc": {
2026-06-10T22:49:44.6936540Z           "complete": false,
2026-06-10T22:49:44.6936753Z           "evidence": []
2026-06-10T22:49:44.6936944Z         },
2026-06-10T22:49:44.6937120Z         "impl": {
2026-06-10T22:49:44.6937307Z           "complete": true,
2026-06-10T22:49:44.6937506Z           "evidence": [
2026-06-10T22:49:44.6937697Z             {
2026-06-10T22:49:44.6937893Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6938130Z               "line": 793
2026-06-10T22:49:44.6938322Z             }
2026-06-10T22:49:44.6938493Z           ]
2026-06-10T22:49:44.6938660Z         },
2026-06-10T22:49:44.6938823Z         "int": {
2026-06-10T22:49:44.6939109Z           "complete": false,
2026-06-10T22:49:44.6939313Z           "evidence": []
2026-06-10T22:49:44.6939498Z         },
2026-06-10T22:49:44.6939665Z         "unit": {
2026-06-10T22:49:44.6939847Z           "complete": true,
2026-06-10T22:49:44.6940051Z           "evidence": [
2026-06-10T22:49:44.6940233Z             {
2026-06-10T22:49:44.6940423Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.6940652Z               "line": 5335
2026-06-10T22:49:44.6940844Z             }
2026-06-10T22:49:44.6941014Z           ]
2026-06-10T22:49:44.6941182Z         }
2026-06-10T22:49:44.6941344Z       }
2026-06-10T22:49:44.6941511Z     },
2026-06-10T22:49:44.6941675Z     {
2026-06-10T22:49:44.6941847Z       "id": "REQ-CONSENT-1",
2026-06-10T22:49:44.6942814Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-10T22:49:44.6943776Z       "requiredStages": [
2026-06-10T22:49:44.6943978Z         "impl",
2026-06-10T22:49:44.6944158Z         "unit"
2026-06-10T22:49:44.6944331Z       ],
2026-06-10T22:49:44.6944496Z       "stages": {
2026-06-10T22:49:44.6944672Z         "doc": {
2026-06-10T22:49:44.6944860Z           "complete": false,
2026-06-10T22:49:44.6945070Z           "evidence": []
2026-06-10T22:49:44.6945257Z         },
2026-06-10T22:49:44.6945427Z         "impl": {
2026-06-10T22:49:44.6945619Z           "complete": true,
2026-06-10T22:49:44.6945939Z           "evidence": [
2026-06-10T22:49:44.6946129Z             {
2026-06-10T22:49:44.6946334Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.6946597Z               "line": 27
2026-06-10T22:49:44.6997709Z             },
2026-06-10T22:49:44.6997914Z             {
2026-06-10T22:49:44.6998129Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.6998410Z               "line": 75
2026-06-10T22:49:44.6998787Z             },
2026-06-10T22:49:44.6999050Z             {
2026-06-10T22:49:44.6999273Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.6999526Z               "line": 98
2026-06-10T22:49:44.6999703Z             },
2026-06-10T22:49:44.6999863Z             {
2026-06-10T22:49:44.7000058Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T22:49:44.7000295Z               "line": 82
2026-06-10T22:49:44.7000467Z             },
2026-06-10T22:49:44.7000624Z             {
2026-06-10T22:49:44.7000819Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T22:49:44.7001053Z               "line": 109
2026-06-10T22:49:44.7001240Z             },
2026-06-10T22:49:44.7001401Z             {
2026-06-10T22:49:44.7001583Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T22:49:44.7001811Z               "line": 127
2026-06-10T22:49:44.7001992Z             },
2026-06-10T22:49:44.7002150Z             {
2026-06-10T22:49:44.7002345Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T22:49:44.7002570Z               "line": 142
2026-06-10T22:49:44.7002745Z             },
2026-06-10T22:49:44.7002908Z             {
2026-06-10T22:49:44.7003083Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7003308Z               "line": 5071
2026-06-10T22:49:44.7003494Z             }
2026-06-10T22:49:44.7003651Z           ]
2026-06-10T22:49:44.7003813Z         },
2026-06-10T22:49:44.7003971Z         "int": {
2026-06-10T22:49:44.7004147Z           "complete": false,
2026-06-10T22:49:44.7004351Z           "evidence": []
2026-06-10T22:49:44.7004534Z         },
2026-06-10T22:49:44.7004685Z         "unit": {
2026-06-10T22:49:44.7004858Z           "complete": true,
2026-06-10T22:49:44.7005051Z           "evidence": [
2026-06-10T22:49:44.7005226Z             {
2026-06-10T22:49:44.7005421Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7005659Z               "line": 334
2026-06-10T22:49:44.7005851Z             },
2026-06-10T22:49:44.7006012Z             {
2026-06-10T22:49:44.7006203Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7006437Z               "line": 380
2026-06-10T22:49:44.7006618Z             },
2026-06-10T22:49:44.7006785Z             {
2026-06-10T22:49:44.7006976Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7007204Z               "line": 391
2026-06-10T22:49:44.7007387Z             },
2026-06-10T22:49:44.7007557Z             {
2026-06-10T22:49:44.7007748Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T22:49:44.7007990Z               "line": 165
2026-06-10T22:49:44.7008169Z             },
2026-06-10T22:49:44.7008336Z             {
2026-06-10T22:49:44.7008522Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T22:49:44.7008756Z               "line": 184
2026-06-10T22:49:44.7009023Z             },
2026-06-10T22:49:44.7009194Z             {
2026-06-10T22:49:44.7009395Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T22:49:44.7009629Z               "line": 204
2026-06-10T22:49:44.7009809Z             },
2026-06-10T22:49:44.7009958Z             {
2026-06-10T22:49:44.7010138Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7010362Z               "line": 5688
2026-06-10T22:49:44.7010538Z             }
2026-06-10T22:49:44.7010693Z           ]
2026-06-10T22:49:44.7010855Z         }
2026-06-10T22:49:44.7011012Z       }
2026-06-10T22:49:44.7011165Z     },
2026-06-10T22:49:44.7011323Z     {
2026-06-10T22:49:44.7011490Z       "id": "REQ-CONSENT-2",
2026-06-10T22:49:44.7012529Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-10T22:49:44.7013458Z       "requiredStages": [
2026-06-10T22:49:44.7013763Z         "impl",
2026-06-10T22:49:44.7013929Z         "unit"
2026-06-10T22:49:44.7014097Z       ],
2026-06-10T22:49:44.7014249Z       "stages": {
2026-06-10T22:49:44.7014412Z         "doc": {
2026-06-10T22:49:44.7014591Z           "complete": false,
2026-06-10T22:49:44.7014793Z           "evidence": []
2026-06-10T22:49:44.7014979Z         },
2026-06-10T22:49:44.7015140Z         "impl": {
2026-06-10T22:49:44.7015328Z           "complete": true,
2026-06-10T22:49:44.7015526Z           "evidence": [
2026-06-10T22:49:44.7015707Z             {
2026-06-10T22:49:44.7015914Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7016162Z               "line": 140
2026-06-10T22:49:44.7016349Z             },
2026-06-10T22:49:44.7016515Z             {
2026-06-10T22:49:44.7016706Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7016955Z               "line": 165
2026-06-10T22:49:44.7017134Z             },
2026-06-10T22:49:44.7017298Z             {
2026-06-10T22:49:44.7017497Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7017721Z               "line": 199
2026-06-10T22:49:44.7017894Z             },
2026-06-10T22:49:44.7018050Z             {
2026-06-10T22:49:44.7018243Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7018473Z               "line": 241
2026-06-10T22:49:44.7018654Z             },
2026-06-10T22:49:44.7018810Z             {
2026-06-10T22:49:44.7019082Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7019692Z               "line": 269
2026-06-10T22:49:44.7019988Z             },
2026-06-10T22:49:44.7020198Z             {
2026-06-10T22:49:44.7020447Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7020752Z               "line": 300
2026-06-10T22:49:44.7020979Z             },
2026-06-10T22:49:44.7021169Z             {
2026-06-10T22:49:44.7021391Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7021682Z               "line": 4936
2026-06-10T22:49:44.7021920Z             },
2026-06-10T22:49:44.7022116Z             {
2026-06-10T22:49:44.7022326Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7022593Z               "line": 4994
2026-06-10T22:49:44.7022874Z             }
2026-06-10T22:49:44.7023160Z           ]
2026-06-10T22:49:44.7023437Z         },
2026-06-10T22:49:44.7023724Z         "int": {
2026-06-10T22:49:44.7024033Z           "complete": false,
2026-06-10T22:49:44.7024390Z           "evidence": []
2026-06-10T22:49:44.7024714Z         },
2026-06-10T22:49:44.7025000Z         "unit": {
2026-06-10T22:49:44.7025306Z           "complete": true,
2026-06-10T22:49:44.7025668Z           "evidence": [
2026-06-10T22:49:44.7025992Z             {
2026-06-10T22:49:44.7026342Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7026779Z               "line": 419
2026-06-10T22:49:44.7027099Z             },
2026-06-10T22:49:44.7027385Z             {
2026-06-10T22:49:44.7027723Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7028149Z               "line": 436
2026-06-10T22:49:44.7028479Z             },
2026-06-10T22:49:44.7028765Z             {
2026-06-10T22:49:44.7029149Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7029495Z               "line": 472
2026-06-10T22:49:44.7029748Z             },
2026-06-10T22:49:44.7029985Z             {
2026-06-10T22:49:44.7030252Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.7030768Z               "line": 516
2026-06-10T22:49:44.7031259Z             },
2026-06-10T22:49:44.7031440Z             {
2026-06-10T22:49:44.7031639Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7031875Z               "line": 6583
2026-06-10T22:49:44.7032062Z             },
2026-06-10T22:49:44.7032222Z             {
2026-06-10T22:49:44.7032400Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7032630Z               "line": 6665
2026-06-10T22:49:44.7032809Z             }
2026-06-10T22:49:44.7033091Z           ]
2026-06-10T22:49:44.7033249Z         }
2026-06-10T22:49:44.7033410Z       }
2026-06-10T22:49:44.7033559Z     },
2026-06-10T22:49:44.7033715Z     {
2026-06-10T22:49:44.7033888Z       "id": "REQ-CONV-1",
2026-06-10T22:49:44.7035537Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-10T22:49:44.7036883Z       "requiredStages": [
2026-06-10T22:49:44.7037073Z         "impl",
2026-06-10T22:49:44.7037240Z         "unit"
2026-06-10T22:49:44.7037402Z       ],
2026-06-10T22:49:44.7037564Z       "stages": {
2026-06-10T22:49:44.7037737Z         "doc": {
2026-06-10T22:49:44.7037926Z           "complete": false,
2026-06-10T22:49:44.7038132Z           "evidence": []
2026-06-10T22:49:44.7038327Z         },
2026-06-10T22:49:44.7038489Z         "impl": {
2026-06-10T22:49:44.7038676Z           "complete": true,
2026-06-10T22:49:44.7038876Z           "evidence": [
2026-06-10T22:49:44.7039291Z             {
2026-06-10T22:49:44.7039570Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7039873Z               "line": 696
2026-06-10T22:49:44.7040094Z             },
2026-06-10T22:49:44.7040308Z             {
2026-06-10T22:49:44.7040550Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.7040845Z               "line": 94
2026-06-10T22:49:44.7041046Z             },
2026-06-10T22:49:44.7041352Z             {
2026-06-10T22:49:44.7041838Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.7042242Z               "line": 345
2026-06-10T22:49:44.7042545Z             },
2026-06-10T22:49:44.7042960Z             {
2026-06-10T22:49:44.7043332Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.7043800Z               "line": 387
2026-06-10T22:49:44.7044124Z             },
2026-06-10T22:49:44.7044425Z             {
2026-06-10T22:49:44.7044835Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.7045224Z               "line": 472
2026-06-10T22:49:44.7045600Z             },
2026-06-10T22:49:44.7045958Z             {
2026-06-10T22:49:44.7046296Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7046764Z               "line": 629
2026-06-10T22:49:44.7047103Z             },
2026-06-10T22:49:44.7047434Z             {
2026-06-10T22:49:44.7047786Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7048195Z               "line": 655
2026-06-10T22:49:44.7048631Z             },
2026-06-10T22:49:44.7049030Z             {
2026-06-10T22:49:44.7049345Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.7049726Z               "line": 369
2026-06-10T22:49:44.7049994Z             },
2026-06-10T22:49:44.7050287Z             {
2026-06-10T22:49:44.7050587Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-10T22:49:44.7050897Z               "line": 19
2026-06-10T22:49:44.7051264Z             }
2026-06-10T22:49:44.7051507Z           ]
2026-06-10T22:49:44.7051917Z         },
2026-06-10T22:49:44.7052180Z         "int": {
2026-06-10T22:49:44.7052423Z           "complete": false,
2026-06-10T22:49:44.7052788Z           "evidence": []
2026-06-10T22:49:44.7053182Z         },
2026-06-10T22:49:44.7053478Z         "unit": {
2026-06-10T22:49:44.7053788Z           "complete": true,
2026-06-10T22:49:44.7054050Z           "evidence": [
2026-06-10T22:49:44.7054374Z             {
2026-06-10T22:49:44.7054650Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7055009Z               "line": 990
2026-06-10T22:49:44.7055290Z             },
2026-06-10T22:49:44.7055674Z             {
2026-06-10T22:49:44.7055999Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-10T22:49:44.7056361Z               "line": 108
2026-06-10T22:49:44.7056653Z             },
2026-06-10T22:49:44.7056910Z             {
2026-06-10T22:49:44.7057195Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-10T22:49:44.7057549Z               "line": 134
2026-06-10T22:49:44.7058065Z             },
2026-06-10T22:49:44.7058299Z             {
2026-06-10T22:49:44.7058679Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-10T22:49:44.7059085Z               "line": 144
2026-06-10T22:49:44.7059390Z             }
2026-06-10T22:49:44.7059652Z           ]
2026-06-10T22:49:44.7059877Z         }
2026-06-10T22:49:44.7060187Z       }
2026-06-10T22:49:44.7060416Z     },
2026-06-10T22:49:44.7060681Z     {
2026-06-10T22:49:44.7060988Z       "id": "REQ-CONV-2",
2026-06-10T22:49:44.7062300Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-10T22:49:44.7063494Z       "requiredStages": [
2026-06-10T22:49:44.7063767Z         "impl",
2026-06-10T22:49:44.7064048Z         "unit"
2026-06-10T22:49:44.7064324Z       ],
2026-06-10T22:49:44.7064591Z       "stages": {
2026-06-10T22:49:44.7064915Z         "doc": {
2026-06-10T22:49:44.7065186Z           "complete": false,
2026-06-10T22:49:44.7065535Z           "evidence": []
2026-06-10T22:49:44.7065811Z         },
2026-06-10T22:49:44.7066048Z         "impl": {
2026-06-10T22:49:44.7066377Z           "complete": true,
2026-06-10T22:49:44.7066665Z           "evidence": [
2026-06-10T22:49:44.7066989Z             {
2026-06-10T22:49:44.7067288Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7067641Z               "line": 359
2026-06-10T22:49:44.7067960Z             },
2026-06-10T22:49:44.7068209Z             {
2026-06-10T22:49:44.7068489Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7068879Z               "line": 333
2026-06-10T22:49:44.7069263Z             },
2026-06-10T22:49:44.7069587Z             {
2026-06-10T22:49:44.7069879Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7070217Z               "line": 761
2026-06-10T22:49:44.7070522Z             },
2026-06-10T22:49:44.7070785Z             {
2026-06-10T22:49:44.7071090Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7071431Z               "line": 772
2026-06-10T22:49:44.7071721Z             },
2026-06-10T22:49:44.7072502Z             {
2026-06-10T22:49:44.7072784Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7073146Z               "line": 334
2026-06-10T22:49:44.7073427Z             },
2026-06-10T22:49:44.7073685Z             {
2026-06-10T22:49:44.7073993Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7074322Z               "line": 2201
2026-06-10T22:49:44.7074660Z             },
2026-06-10T22:49:44.7074927Z             {
2026-06-10T22:49:44.7075189Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7075556Z               "line": 2217
2026-06-10T22:49:44.7075829Z             },
2026-06-10T22:49:44.7076047Z             {
2026-06-10T22:49:44.7076376Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7076718Z               "line": 2274
2026-06-10T22:49:44.7077172Z             }
2026-06-10T22:49:44.7077415Z           ]
2026-06-10T22:49:44.7077662Z         },
2026-06-10T22:49:44.7077962Z         "int": {
2026-06-10T22:49:44.7078221Z           "complete": false,
2026-06-10T22:49:44.7078559Z           "evidence": []
2026-06-10T22:49:44.7078839Z         },
2026-06-10T22:49:44.7079194Z         "unit": {
2026-06-10T22:49:44.7079518Z           "complete": true,
2026-06-10T22:49:44.7079928Z           "evidence": [
2026-06-10T22:49:44.7080229Z             {
2026-06-10T22:49:44.7080524Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7080863Z               "line": 1071
2026-06-10T22:49:44.7081163Z             }
2026-06-10T22:49:44.7081411Z           ]
2026-06-10T22:49:44.7081711Z         }
2026-06-10T22:49:44.7081973Z       }
2026-06-10T22:49:44.7082200Z     },
2026-06-10T22:49:44.7082476Z     {
2026-06-10T22:49:44.7082748Z       "id": "REQ-DAEMON-1",
2026-06-10T22:49:44.7083077Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-10T22:49:44.7083540Z       "requiredStages": [
2026-06-10T22:49:44.7083817Z         "impl",
2026-06-10T22:49:44.7084156Z         "unit",
2026-06-10T22:49:44.7084411Z         "int"
2026-06-10T22:49:44.7084643Z       ],
2026-06-10T22:49:44.7084943Z       "stages": {
2026-06-10T22:49:44.7085187Z         "doc": {
2026-06-10T22:49:44.7085463Z           "complete": false,
2026-06-10T22:49:44.7085773Z           "evidence": []
2026-06-10T22:49:44.7086040Z         },
2026-06-10T22:49:44.7086365Z         "impl": {
2026-06-10T22:49:44.7086621Z           "complete": true,
2026-06-10T22:49:44.7086941Z           "evidence": [
2026-06-10T22:49:44.7087211Z             {
2026-06-10T22:49:44.7087474Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T22:49:44.7087850Z               "line": 12
2026-06-10T22:49:44.7088114Z             },
2026-06-10T22:49:44.7088432Z             {
2026-06-10T22:49:44.7088723Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7089157Z               "line": 16
2026-06-10T22:49:44.7089466Z             },
2026-06-10T22:49:44.7089722Z             {
2026-06-10T22:49:44.7089984Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7090379Z               "line": 259
2026-06-10T22:49:44.7090666Z             },
2026-06-10T22:49:44.7097024Z             {
2026-06-10T22:49:44.7097274Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-10T22:49:44.7097554Z               "line": 15
2026-06-10T22:49:44.7097748Z             },
2026-06-10T22:49:44.7097934Z             {
2026-06-10T22:49:44.7098124Z               "path": "crates/spt/src/api/live.rs",
2026-06-10T22:49:44.7098363Z               "line": 13
2026-06-10T22:49:44.7098545Z             }
2026-06-10T22:49:44.7098720Z           ]
2026-06-10T22:49:44.7098883Z         },
2026-06-10T22:49:44.7099316Z         "int": {
2026-06-10T22:49:44.7099641Z           "complete": true,
2026-06-10T22:49:44.7099913Z           "evidence": [
2026-06-10T22:49:44.7100178Z             {
2026-06-10T22:49:44.7100444Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-10T22:49:44.7100768Z               "line": 32
2026-06-10T22:49:44.7101005Z             }
2026-06-10T22:49:44.7101202Z           ]
2026-06-10T22:49:44.7101393Z         },
2026-06-10T22:49:44.7101583Z         "unit": {
2026-06-10T22:49:44.7101803Z           "complete": true,
2026-06-10T22:49:44.7102061Z           "evidence": [
2026-06-10T22:49:44.7102288Z             {
2026-06-10T22:49:44.7102561Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T22:49:44.7102860Z               "line": 285
2026-06-10T22:49:44.7103088Z             },
2026-06-10T22:49:44.7103286Z             {
2026-06-10T22:49:44.7103529Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T22:49:44.7103825Z               "line": 293
2026-06-10T22:49:44.7104041Z             },
2026-06-10T22:49:44.7104235Z             {
2026-06-10T22:49:44.7104479Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T22:49:44.7105018Z               "line": 309
2026-06-10T22:49:44.7105243Z             },
2026-06-10T22:49:44.7105441Z             {
2026-06-10T22:49:44.7105678Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T22:49:44.7105973Z               "line": 317
2026-06-10T22:49:44.7106197Z             },
2026-06-10T22:49:44.7106396Z             {
2026-06-10T22:49:44.7106640Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7107084Z               "line": 609
2026-06-10T22:49:44.7107308Z             },
2026-06-10T22:49:44.7107504Z             {
2026-06-10T22:49:44.7107737Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7108033Z               "line": 679
2026-06-10T22:49:44.7108256Z             },
2026-06-10T22:49:44.7108471Z             {
2026-06-10T22:49:44.7108703Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-10T22:49:44.7109047Z               "line": 104
2026-06-10T22:49:44.7109252Z             },
2026-06-10T22:49:44.7109420Z             {
2026-06-10T22:49:44.7109605Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-10T22:49:44.7109843Z               "line": 129
2026-06-10T22:49:44.7110020Z             }
2026-06-10T22:49:44.7110186Z           ]
2026-06-10T22:49:44.7110273Z         }
2026-06-10T22:49:44.7110359Z       }
2026-06-10T22:49:44.7110440Z     },
2026-06-10T22:49:44.7110530Z     {
2026-06-10T22:49:44.7110634Z       "id": "REQ-DAEMON-2",
2026-06-10T22:49:44.7110781Z       "title": "Broker/brain split for seamless self-update",
2026-06-10T22:49:44.7110875Z       "requiredStages": [
2026-06-10T22:49:44.7110975Z         "impl",
2026-06-10T22:49:44.7111061Z         "unit",
2026-06-10T22:49:44.7111147Z         "int"
2026-06-10T22:49:44.7111232Z       ],
2026-06-10T22:49:44.7111318Z       "stages": {
2026-06-10T22:49:44.7111410Z         "doc": {
2026-06-10T22:49:44.7111500Z           "complete": false,
2026-06-10T22:49:44.7111599Z           "evidence": []
2026-06-10T22:49:44.7111691Z         },
2026-06-10T22:49:44.7111776Z         "impl": {
2026-06-10T22:49:44.7111880Z           "complete": true,
2026-06-10T22:49:44.7111973Z           "evidence": [
2026-06-10T22:49:44.7112058Z             {
2026-06-10T22:49:44.7112176Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7112272Z               "line": 23
2026-06-10T22:49:44.7112358Z             },
2026-06-10T22:49:44.7112449Z             {
2026-06-10T22:49:44.7112568Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7112654Z               "line": 595
2026-06-10T22:49:44.7112744Z             },
2026-06-10T22:49:44.7112825Z             {
2026-06-10T22:49:44.7112941Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7113035Z               "line": 648
2026-06-10T22:49:44.7113116Z             },
2026-06-10T22:49:44.7113207Z             {
2026-06-10T22:49:44.7113317Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7113416Z               "line": 830
2026-06-10T22:49:44.7113506Z             },
2026-06-10T22:49:44.7113587Z             {
2026-06-10T22:49:44.7113709Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7113799Z               "line": 32
2026-06-10T22:49:44.7113885Z             },
2026-06-10T22:49:44.7113967Z             {
2026-06-10T22:49:44.7114090Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7114190Z               "line": 255
2026-06-10T22:49:44.7114277Z             },
2026-06-10T22:49:44.7114362Z             {
2026-06-10T22:49:44.7114476Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7114568Z               "line": 687
2026-06-10T22:49:44.7114648Z             },
2026-06-10T22:49:44.7114738Z             {
2026-06-10T22:49:44.7114854Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7114935Z               "line": 953
2026-06-10T22:49:44.7115025Z             },
2026-06-10T22:49:44.7115106Z             {
2026-06-10T22:49:44.7115329Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-10T22:49:44.7115420Z               "line": 11
2026-06-10T22:49:44.7115512Z             },
2026-06-10T22:49:44.7115606Z             {
2026-06-10T22:49:44.7115711Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7115808Z               "line": 146
2026-06-10T22:49:44.7115894Z             },
2026-06-10T22:49:44.7116077Z             {
2026-06-10T22:49:44.7116187Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7116285Z               "line": 274
2026-06-10T22:49:44.7116375Z             },
2026-06-10T22:49:44.7116452Z             {
2026-06-10T22:49:44.7116568Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T22:49:44.7116647Z               "line": 13
2026-06-10T22:49:44.7116728Z             },
2026-06-10T22:49:44.7116806Z             {
2026-06-10T22:49:44.7116924Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7117024Z               "line": 27
2026-06-10T22:49:44.7117106Z             },
2026-06-10T22:49:44.7117215Z             {
2026-06-10T22:49:44.7117333Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7117425Z               "line": 109
2026-06-10T22:49:44.7117505Z             },
2026-06-10T22:49:44.7117591Z             {
2026-06-10T22:49:44.7117711Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7117807Z               "line": 447
2026-06-10T22:49:44.7117892Z             },
2026-06-10T22:49:44.7117973Z             {
2026-06-10T22:49:44.7118088Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7118177Z               "line": 614
2026-06-10T22:49:44.7118268Z             },
2026-06-10T22:49:44.7118355Z             {
2026-06-10T22:49:44.7118464Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7118559Z               "line": 715
2026-06-10T22:49:44.7118641Z             },
2026-06-10T22:49:44.7118737Z             {
2026-06-10T22:49:44.7118854Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7118939Z               "line": 764
2026-06-10T22:49:44.7119113Z             },
2026-06-10T22:49:44.7119192Z             {
2026-06-10T22:49:44.7119312Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7119398Z               "line": 812
2026-06-10T22:49:44.7119488Z             },
2026-06-10T22:49:44.7119583Z             {
2026-06-10T22:49:44.7119703Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-10T22:49:44.7119794Z               "line": 10
2026-06-10T22:49:44.7119874Z             }
2026-06-10T22:49:44.7119960Z           ]
2026-06-10T22:49:44.7120041Z         },
2026-06-10T22:49:44.7120146Z         "int": {
2026-06-10T22:49:44.7120246Z           "complete": true,
2026-06-10T22:49:44.7120333Z           "evidence": [
2026-06-10T22:49:44.7120423Z             {
2026-06-10T22:49:44.7120537Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-10T22:49:44.7120634Z               "line": 17
2026-06-10T22:49:44.7120718Z             },
2026-06-10T22:49:44.7120804Z             {
2026-06-10T22:49:44.7120934Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-10T22:49:44.7121019Z               "line": 71
2026-06-10T22:49:44.7121109Z             },
2026-06-10T22:49:44.7121189Z             {
2026-06-10T22:49:44.7121313Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-10T22:49:44.7121406Z               "line": 91
2026-06-10T22:49:44.7121491Z             },
2026-06-10T22:49:44.7121578Z             {
2026-06-10T22:49:44.7121693Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-10T22:49:44.7121783Z               "line": 167
2026-06-10T22:49:44.7121864Z             },
2026-06-10T22:49:44.7121951Z             {
2026-06-10T22:49:44.7122064Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-10T22:49:44.7122154Z               "line": 209
2026-06-10T22:49:44.7122242Z             },
2026-06-10T22:49:44.7122436Z             {
2026-06-10T22:49:44.7122556Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-10T22:49:44.7122642Z               "line": 128
2026-06-10T22:49:44.7122732Z             },
2026-06-10T22:49:44.7122813Z             {
2026-06-10T22:49:44.7122932Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-10T22:49:44.7123023Z               "line": 59
2026-06-10T22:49:44.7123200Z             }
2026-06-10T22:49:44.7123285Z           ]
2026-06-10T22:49:44.7123366Z         },
2026-06-10T22:49:44.7123457Z         "unit": {
2026-06-10T22:49:44.7123548Z           "complete": true,
2026-06-10T22:49:44.7123642Z           "evidence": [
2026-06-10T22:49:44.7123728Z             {
2026-06-10T22:49:44.7123839Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-10T22:49:44.7123938Z               "line": 62
2026-06-10T22:49:44.7124023Z             },
2026-06-10T22:49:44.7124109Z             {
2026-06-10T22:49:44.7124218Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-10T22:49:44.7124321Z               "line": 76
2026-06-10T22:49:44.7124412Z             },
2026-06-10T22:49:44.7124493Z             {
2026-06-10T22:49:44.7124607Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-10T22:49:44.7124692Z               "line": 88
2026-06-10T22:49:44.7124780Z             },
2026-06-10T22:49:44.7124861Z             {
2026-06-10T22:49:44.7124979Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-10T22:49:44.7125075Z               "line": 294
2026-06-10T22:49:44.7125161Z             },
2026-06-10T22:49:44.7125242Z             {
2026-06-10T22:49:44.7125351Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T22:49:44.7125442Z               "line": 620
2026-06-10T22:49:44.7125532Z             },
2026-06-10T22:49:44.7125613Z             {
2026-06-10T22:49:44.7125724Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T22:49:44.7125810Z               "line": 628
2026-06-10T22:49:44.7125899Z             },
2026-06-10T22:49:44.7125990Z             {
2026-06-10T22:49:44.7126096Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T22:49:44.7126185Z               "line": 645
2026-06-10T22:49:44.7126267Z             },
2026-06-10T22:49:44.7126359Z             {
2026-06-10T22:49:44.7126468Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T22:49:44.7126556Z               "line": 699
2026-06-10T22:49:44.7126646Z             },
2026-06-10T22:49:44.7126737Z             {
2026-06-10T22:49:44.7126855Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7126940Z               "line": 883
2026-06-10T22:49:44.7127026Z             },
2026-06-10T22:49:44.7127108Z             {
2026-06-10T22:49:44.7127226Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7127312Z               "line": 895
2026-06-10T22:49:44.7127404Z             },
2026-06-10T22:49:44.7127489Z             {
2026-06-10T22:49:44.7127598Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-10T22:49:44.7127690Z               "line": 110
2026-06-10T22:49:44.7127770Z             },
2026-06-10T22:49:44.7127860Z             {
2026-06-10T22:49:44.7127966Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-10T22:49:44.7128057Z               "line": 142
2026-06-10T22:49:44.7128137Z             }
2026-06-10T22:49:44.7128223Z           ]
2026-06-10T22:49:44.7128300Z         }
2026-06-10T22:49:44.7128386Z       }
2026-06-10T22:49:44.7128467Z     },
2026-06-10T22:49:44.7128547Z     {
2026-06-10T22:49:44.7128644Z       "id": "REQ-DAEMON-3",
2026-06-10T22:49:44.7128786Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-10T22:49:44.7128872Z       "requiredStages": [
2026-06-10T22:49:44.7129100Z         "impl",
2026-06-10T22:49:44.7129182Z         "unit",
2026-06-10T22:49:44.7129273Z         "int"
2026-06-10T22:49:44.7129349Z       ],
2026-06-10T22:49:44.7129433Z       "stages": {
2026-06-10T22:49:44.7129523Z         "doc": {
2026-06-10T22:49:44.7129720Z           "complete": false,
2026-06-10T22:49:44.7129819Z           "evidence": []
2026-06-10T22:49:44.7129896Z         },
2026-06-10T22:49:44.7129977Z         "impl": {
2026-06-10T22:49:44.7130067Z           "complete": true,
2026-06-10T22:49:44.7130153Z           "evidence": [
2026-06-10T22:49:44.7130230Z             {
2026-06-10T22:49:44.7130345Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7130644Z               "line": 14
2026-06-10T22:49:44.7130725Z             },
2026-06-10T22:49:44.7130811Z             {
2026-06-10T22:49:44.7130926Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-10T22:49:44.7131016Z               "line": 11
2026-06-10T22:49:44.7131102Z             },
2026-06-10T22:49:44.7131184Z             {
2026-06-10T22:49:44.7131302Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T22:49:44.7131383Z               "line": 247
2026-06-10T22:49:44.7131470Z             },
2026-06-10T22:49:44.7131556Z             {
2026-06-10T22:49:44.7131678Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7131768Z               "line": 1294
2026-06-10T22:49:44.7131850Z             },
2026-06-10T22:49:44.7131934Z             {
2026-06-10T22:49:44.7132029Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7132119Z               "line": 3145
2026-06-10T22:49:44.7132201Z             },
2026-06-10T22:49:44.7132286Z             {
2026-06-10T22:49:44.7132390Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7132477Z               "line": 3166
2026-06-10T22:49:44.7132563Z             }
2026-06-10T22:49:44.7132643Z           ]
2026-06-10T22:49:44.7132729Z         },
2026-06-10T22:49:44.7132807Z         "int": {
2026-06-10T22:49:44.7132902Z           "complete": true,
2026-06-10T22:49:44.7133001Z           "evidence": [
2026-06-10T22:49:44.7133083Z             {
2026-06-10T22:49:44.7133197Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T22:49:44.7133287Z               "line": 49
2026-06-10T22:49:44.7133383Z             },
2026-06-10T22:49:44.7133464Z             {
2026-06-10T22:49:44.7133578Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T22:49:44.7133668Z               "line": 439
2026-06-10T22:49:44.7133751Z             }
2026-06-10T22:49:44.7133840Z           ]
2026-06-10T22:49:44.7133922Z         },
2026-06-10T22:49:44.7134008Z         "unit": {
2026-06-10T22:49:44.7134094Z           "complete": true,
2026-06-10T22:49:44.7134193Z           "evidence": [
2026-06-10T22:49:44.7134279Z             {
2026-06-10T22:49:44.7134386Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7134479Z               "line": 767
2026-06-10T22:49:44.7134564Z             },
2026-06-10T22:49:44.7134655Z             {
2026-06-10T22:49:44.7134750Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7134838Z               "line": 7645
2026-06-10T22:49:44.7134923Z             }
2026-06-10T22:49:44.7135005Z           ]
2026-06-10T22:49:44.7135102Z         }
2026-06-10T22:49:44.7135182Z       }
2026-06-10T22:49:44.7135262Z     },
2026-06-10T22:49:44.7135345Z     {
2026-06-10T22:49:44.7135440Z       "id": "REQ-DAEMON-4",
2026-06-10T22:49:44.7135558Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-10T22:49:44.7135645Z       "requiredStages": [
2026-06-10T22:49:44.7135735Z         "impl",
2026-06-10T22:49:44.7135816Z         "unit",
2026-06-10T22:49:44.7135906Z         "int"
2026-06-10T22:49:44.7135993Z       ],
2026-06-10T22:49:44.7136083Z       "stages": {
2026-06-10T22:49:44.7136169Z         "doc": {
2026-06-10T22:49:44.7136255Z           "complete": false,
2026-06-10T22:49:44.7136350Z           "evidence": []
2026-06-10T22:49:44.7136431Z         },
2026-06-10T22:49:44.7136517Z         "impl": {
2026-06-10T22:49:44.7136604Z           "complete": true,
2026-06-10T22:49:44.7136694Z           "evidence": [
2026-06-10T22:49:44.7136783Z             {
2026-06-10T22:49:44.7136899Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7137065Z               "line": 414
2026-06-10T22:49:44.7137145Z             },
2026-06-10T22:49:44.7137231Z             {
2026-06-10T22:49:44.7137345Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7137438Z               "line": 479
2026-06-10T22:49:44.7137529Z             },
2026-06-10T22:49:44.7137610Z             {
2026-06-10T22:49:44.7137725Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7137882Z               "line": 501
2026-06-10T22:49:44.7137969Z             }
2026-06-10T22:49:44.7138049Z           ]
2026-06-10T22:49:44.7138134Z         },
2026-06-10T22:49:44.7138221Z         "int": {
2026-06-10T22:49:44.7138312Z           "complete": true,
2026-06-10T22:49:44.7138402Z           "evidence": [
2026-06-10T22:49:44.7138483Z             {
2026-06-10T22:49:44.7138607Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-10T22:49:44.7138703Z               "line": 37
2026-06-10T22:49:44.7138788Z             }
2026-06-10T22:49:44.7138879Z           ]
2026-06-10T22:49:44.7139103Z         },
2026-06-10T22:49:44.7139189Z         "unit": {
2026-06-10T22:49:44.7139293Z           "complete": true,
2026-06-10T22:49:44.7139384Z           "evidence": [
2026-06-10T22:49:44.7139466Z             {
2026-06-10T22:49:44.7139585Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T22:49:44.7139675Z               "line": 428
2026-06-10T22:49:44.7139766Z             },
2026-06-10T22:49:44.7139852Z             {
2026-06-10T22:49:44.7139960Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7140050Z               "line": 907
2026-06-10T22:49:44.7140136Z             },
2026-06-10T22:49:44.7140218Z             {
2026-06-10T22:49:44.7140341Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7140422Z               "line": 977
2026-06-10T22:49:44.7140514Z             },
2026-06-10T22:49:44.7140590Z             {
2026-06-10T22:49:44.7140708Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7140810Z               "line": 1007
2026-06-10T22:49:44.7140890Z             },
2026-06-10T22:49:44.7140975Z             {
2026-06-10T22:49:44.7141086Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7141176Z               "line": 1040
2026-06-10T22:49:44.7141257Z             }
2026-06-10T22:49:44.7141333Z           ]
2026-06-10T22:49:44.7141420Z         }
2026-06-10T22:49:44.7141491Z       }
2026-06-10T22:49:44.7141567Z     },
2026-06-10T22:49:44.7141643Z     {
2026-06-10T22:49:44.7141749Z       "id": "REQ-DAEMON-5",
2026-06-10T22:49:44.7143104Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-10T22:49:44.7143222Z       "requiredStages": [
2026-06-10T22:49:44.7143309Z         "impl",
2026-06-10T22:49:44.7143386Z         "unit"
2026-06-10T22:49:44.7143476Z       ],
2026-06-10T22:49:44.7143556Z       "stages": {
2026-06-10T22:49:44.7143633Z         "doc": {
2026-06-10T22:49:44.7143728Z           "complete": false,
2026-06-10T22:49:44.7143814Z           "evidence": []
2026-06-10T22:49:44.7143909Z         },
2026-06-10T22:49:44.7143987Z         "impl": {
2026-06-10T22:49:44.7144076Z           "complete": true,
2026-06-10T22:49:44.7144162Z           "evidence": [
2026-06-10T22:49:44.7144253Z             {
2026-06-10T22:49:44.7144382Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7144467Z               "line": 323
2026-06-10T22:49:44.7144539Z             },
2026-06-10T22:49:44.7144616Z             {
2026-06-10T22:49:44.7144729Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7144931Z               "line": 724
2026-06-10T22:49:44.7145021Z             },
2026-06-10T22:49:44.7145105Z             {
2026-06-10T22:49:44.7145215Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7145306Z               "line": 737
2026-06-10T22:49:44.7145375Z             },
2026-06-10T22:49:44.7145460Z             {
2026-06-10T22:49:44.7145565Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7145751Z               "line": 755
2026-06-10T22:49:44.7145832Z             },
2026-06-10T22:49:44.7145910Z             {
2026-06-10T22:49:44.7146028Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7146104Z               "line": 796
2026-06-10T22:49:44.7146181Z             }
2026-06-10T22:49:44.7146257Z           ]
2026-06-10T22:49:44.7146338Z         },
2026-06-10T22:49:44.7146428Z         "int": {
2026-06-10T22:49:44.7146519Z           "complete": false,
2026-06-10T22:49:44.7146624Z           "evidence": []
2026-06-10T22:49:44.7146738Z         },
2026-06-10T22:49:44.7146829Z         "unit": {
2026-06-10T22:49:44.7146915Z           "complete": true,
2026-06-10T22:49:44.7147010Z           "evidence": [
2026-06-10T22:49:44.7147096Z             {
2026-06-10T22:49:44.7147207Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7147301Z               "line": 916
2026-06-10T22:49:44.7147387Z             },
2026-06-10T22:49:44.7147479Z             {
2026-06-10T22:49:44.7147592Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7147682Z               "line": 940
2026-06-10T22:49:44.7147777Z             },
2026-06-10T22:49:44.7147858Z             {
2026-06-10T22:49:44.7147975Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7148060Z               "line": 966
2026-06-10T22:49:44.7148147Z             }
2026-06-10T22:49:44.7148228Z           ]
2026-06-10T22:49:44.7148309Z         }
2026-06-10T22:49:44.7148399Z       }
2026-06-10T22:49:44.7148490Z     },
2026-06-10T22:49:44.7148576Z     {
2026-06-10T22:49:44.7148666Z       "id": "REQ-DAEMON-6",
2026-06-10T22:49:44.7150803Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-10T22:49:44.7150915Z       "requiredStages": [
2026-06-10T22:49:44.7150997Z         "impl",
2026-06-10T22:49:44.7151084Z         "unit"
2026-06-10T22:49:44.7151174Z       ],
2026-06-10T22:49:44.7151263Z       "stages": {
2026-06-10T22:49:44.7151370Z         "doc": {
2026-06-10T22:49:44.7151465Z           "complete": false,
2026-06-10T22:49:44.7151559Z           "evidence": []
2026-06-10T22:49:44.7151641Z         },
2026-06-10T22:49:44.7151727Z         "impl": {
2026-06-10T22:49:44.7151818Z           "complete": true,
2026-06-10T22:49:44.7151917Z           "evidence": [
2026-06-10T22:49:44.7151999Z             {
2026-06-10T22:49:44.7152117Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7152222Z               "line": 426
2026-06-10T22:49:44.7152304Z             },
2026-06-10T22:49:44.7152390Z             {
2026-06-10T22:49:44.7152499Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7152590Z               "line": 457
2026-06-10T22:49:44.7152676Z             },
2026-06-10T22:49:44.7152756Z             {
2026-06-10T22:49:44.7152874Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T22:49:44.7152960Z               "line": 55
2026-06-10T22:49:44.7153045Z             },
2026-06-10T22:49:44.7153240Z             {
2026-06-10T22:49:44.7153350Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T22:49:44.7153439Z               "line": 70
2026-06-10T22:49:44.7153520Z             },
2026-06-10T22:49:44.7153602Z             {
2026-06-10T22:49:44.7153703Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7153797Z               "line": 1348
2026-06-10T22:49:44.7153879Z             },
2026-06-10T22:49:44.7154060Z             {
2026-06-10T22:49:44.7154169Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7154251Z               "line": 1374
2026-06-10T22:49:44.7154336Z             }
2026-06-10T22:49:44.7154416Z           ]
2026-06-10T22:49:44.7154503Z         },
2026-06-10T22:49:44.7154590Z         "int": {
2026-06-10T22:49:44.7154680Z           "complete": false,
2026-06-10T22:49:44.7154775Z           "evidence": []
2026-06-10T22:49:44.7154852Z         },
2026-06-10T22:49:44.7154942Z         "unit": {
2026-06-10T22:49:44.7155037Z           "complete": true,
2026-06-10T22:49:44.7155128Z           "evidence": [
2026-06-10T22:49:44.7155215Z             {
2026-06-10T22:49:44.7155322Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T22:49:44.7155414Z               "line": 288
2026-06-10T22:49:44.7155496Z             },
2026-06-10T22:49:44.7155581Z             {
2026-06-10T22:49:44.7155694Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T22:49:44.7155794Z               "line": 299
2026-06-10T22:49:44.7155875Z             },
2026-06-10T22:49:44.7155959Z             {
2026-06-10T22:49:44.7156072Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T22:49:44.7156154Z               "line": 325
2026-06-10T22:49:44.7156236Z             },
2026-06-10T22:49:44.7156316Z             {
2026-06-10T22:49:44.7156426Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T22:49:44.7156517Z               "line": 351
2026-06-10T22:49:44.7156598Z             }
2026-06-10T22:49:44.7156688Z           ]
2026-06-10T22:49:44.7156770Z         }
2026-06-10T22:49:44.7156855Z       }
2026-06-10T22:49:44.7156941Z     },
2026-06-10T22:49:44.7157026Z     {
2026-06-10T22:49:44.7157128Z       "id": "REQ-DAEMON-7",
2026-06-10T22:49:44.7158451Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-10T22:49:44.7158549Z       "requiredStages": [
2026-06-10T22:49:44.7158625Z         "impl",
2026-06-10T22:49:44.7158712Z         "unit"
2026-06-10T22:49:44.7158789Z       ],
2026-06-10T22:49:44.7158878Z       "stages": {
2026-06-10T22:49:44.7159022Z         "doc": {
2026-06-10T22:49:44.7159117Z           "complete": false,
2026-06-10T22:49:44.7159207Z           "evidence": []
2026-06-10T22:49:44.7159283Z         },
2026-06-10T22:49:44.7159370Z         "impl": {
2026-06-10T22:49:44.7159460Z           "complete": true,
2026-06-10T22:49:44.7159546Z           "evidence": [
2026-06-10T22:49:44.7159618Z             {
2026-06-10T22:49:44.7159737Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7159846Z               "line": 476
2026-06-10T22:49:44.7159937Z             },
2026-06-10T22:49:44.7160023Z             {
2026-06-10T22:49:44.7160147Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7160237Z               "line": 601
2026-06-10T22:49:44.7160320Z             },
2026-06-10T22:49:44.7160399Z             {
2026-06-10T22:49:44.7160519Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T22:49:44.7160606Z               "line": 89
2026-06-10T22:49:44.7160691Z             },
2026-06-10T22:49:44.7160780Z             {
2026-06-10T22:49:44.7161001Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7161095Z               "line": 1295
2026-06-10T22:49:44.7161175Z             }
2026-06-10T22:49:44.7161257Z           ]
2026-06-10T22:49:44.7161334Z         },
2026-06-10T22:49:44.7161419Z         "int": {
2026-06-10T22:49:44.7161528Z           "complete": false,
2026-06-10T22:49:44.7161610Z           "evidence": []
2026-06-10T22:49:44.7161696Z         },
2026-06-10T22:49:44.7161877Z         "unit": {
2026-06-10T22:49:44.7161972Z           "complete": true,
2026-06-10T22:49:44.7162058Z           "evidence": [
2026-06-10T22:49:44.7162143Z             {
2026-06-10T22:49:44.7162259Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T22:49:44.7162344Z               "line": 314
2026-06-10T22:49:44.7162425Z             },
2026-06-10T22:49:44.7162506Z             {
2026-06-10T22:49:44.7162607Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7162692Z               "line": 5508
2026-06-10T22:49:44.7162782Z             }
2026-06-10T22:49:44.7162869Z           ]
2026-06-10T22:49:44.7162950Z         }
2026-06-10T22:49:44.7163030Z       }
2026-06-10T22:49:44.7163112Z     },
2026-06-10T22:49:44.7163198Z     {
2026-06-10T22:49:44.7163288Z       "id": "REQ-DAEMON-8",
2026-06-10T22:49:44.7164206Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-10T22:49:44.7164310Z       "requiredStages": [
2026-06-10T22:49:44.7164395Z         "impl",
2026-06-10T22:49:44.7164482Z         "unit"
2026-06-10T22:49:44.7164562Z       ],
2026-06-10T22:49:44.7164648Z       "stages": {
2026-06-10T22:49:44.7164734Z         "doc": {
2026-06-10T22:49:44.7164826Z           "complete": false,
2026-06-10T22:49:44.7164916Z           "evidence": []
2026-06-10T22:49:44.7165010Z         },
2026-06-10T22:49:44.7165097Z         "impl": {
2026-06-10T22:49:44.7165187Z           "complete": true,
2026-06-10T22:49:44.7165273Z           "evidence": [
2026-06-10T22:49:44.7165364Z             {
2026-06-10T22:49:44.7165488Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7165578Z               "line": 376
2026-06-10T22:49:44.7165659Z             },
2026-06-10T22:49:44.7165746Z             {
2026-06-10T22:49:44.7165873Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T22:49:44.7165964Z               "line": 56
2026-06-10T22:49:44.7166051Z             }
2026-06-10T22:49:44.7166132Z           ]
2026-06-10T22:49:44.7166216Z         },
2026-06-10T22:49:44.7166297Z         "int": {
2026-06-10T22:49:44.7166397Z           "complete": false,
2026-06-10T22:49:44.7166487Z           "evidence": []
2026-06-10T22:49:44.7166571Z         },
2026-06-10T22:49:44.7166662Z         "unit": {
2026-06-10T22:49:44.7166758Z           "complete": true,
2026-06-10T22:49:44.7166857Z           "evidence": [
2026-06-10T22:49:44.7166943Z             {
2026-06-10T22:49:44.7169720Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T22:49:44.7169848Z               "line": 288
2026-06-10T22:49:44.7169935Z             },
2026-06-10T22:49:44.7170035Z             {
2026-06-10T22:49:44.7170163Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T22:49:44.7170255Z               "line": 325
2026-06-10T22:49:44.7170354Z             }
2026-06-10T22:49:44.7170440Z           ]
2026-06-10T22:49:44.7170516Z         }
2026-06-10T22:49:44.7170602Z       }
2026-06-10T22:49:44.7170688Z     },
2026-06-10T22:49:44.7170769Z     {
2026-06-10T22:49:44.7170865Z       "id": "REQ-DAEMON-9",
2026-06-10T22:49:44.7176650Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-10T22:49:44.7177028Z       "requiredStages": [
2026-06-10T22:49:44.7177122Z         "impl",
2026-06-10T22:49:44.7177207Z         "unit"
2026-06-10T22:49:44.7177279Z       ],
2026-06-10T22:49:44.7177361Z       "stages": {
2026-06-10T22:49:44.7177441Z         "doc": {
2026-06-10T22:49:44.7177536Z           "complete": false,
2026-06-10T22:49:44.7177619Z           "evidence": []
2026-06-10T22:49:44.7177709Z         },
2026-06-10T22:49:44.7177798Z         "impl": {
2026-06-10T22:49:44.7177890Z           "complete": true,
2026-06-10T22:49:44.7177985Z           "evidence": [
2026-06-10T22:49:44.7178057Z             {
2026-06-10T22:49:44.7178195Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7178282Z               "line": 262
2026-06-10T22:49:44.7178372Z             },
2026-06-10T22:49:44.7178452Z             {
2026-06-10T22:49:44.7178563Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7178657Z               "line": 306
2026-06-10T22:49:44.7178733Z             },
2026-06-10T22:49:44.7178825Z             {
2026-06-10T22:49:44.7178935Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7179091Z               "line": 190
2026-06-10T22:49:44.7179183Z             },
2026-06-10T22:49:44.7179254Z             {
2026-06-10T22:49:44.7179372Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7179457Z               "line": 275
2026-06-10T22:49:44.7179548Z             },
2026-06-10T22:49:44.7179623Z             {
2026-06-10T22:49:44.7179736Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7179827Z               "line": 312
2026-06-10T22:49:44.7179899Z             },
2026-06-10T22:49:44.7179975Z             {
2026-06-10T22:49:44.7180070Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7180157Z               "line": 1403
2026-06-10T22:49:44.7180237Z             }
2026-06-10T22:49:44.7180317Z           ]
2026-06-10T22:49:44.7180403Z         },
2026-06-10T22:49:44.7180472Z         "int": {
2026-06-10T22:49:44.7180566Z           "complete": false,
2026-06-10T22:49:44.7180651Z           "evidence": []
2026-06-10T22:49:44.7180738Z         },
2026-06-10T22:49:44.7180815Z         "unit": {
2026-06-10T22:49:44.7180904Z           "complete": true,
2026-06-10T22:49:44.7180990Z           "evidence": [
2026-06-10T22:49:44.7181067Z             {
2026-06-10T22:49:44.7181186Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7181267Z               "line": 723
2026-06-10T22:49:44.7181348Z             },
2026-06-10T22:49:44.7181421Z             {
2026-06-10T22:49:44.7181519Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7181610Z               "line": 7510
2026-06-10T22:49:44.7181687Z             }
2026-06-10T22:49:44.7181769Z           ]
2026-06-10T22:49:44.7181844Z         }
2026-06-10T22:49:44.7181934Z       }
2026-06-10T22:49:44.7182012Z     },
2026-06-10T22:49:44.7182093Z     {
2026-06-10T22:49:44.7182186Z       "id": "REQ-DOCS-1",
2026-06-10T22:49:44.7182377Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-10T22:49:44.7182473Z       "requiredStages": [
2026-06-10T22:49:44.7182558Z         "doc",
2026-06-10T22:49:44.7182648Z         "impl"
2026-06-10T22:49:44.7182726Z       ],
2026-06-10T22:49:44.7182807Z       "stages": {
2026-06-10T22:49:44.7182892Z         "doc": {
2026-06-10T22:49:44.7182978Z           "complete": true,
2026-06-10T22:49:44.7183173Z           "evidence": [
2026-06-10T22:49:44.7183254Z             {
2026-06-10T22:49:44.7183360Z               "path": "docs-site/src/index.md",
2026-06-10T22:49:44.7183445Z               "line": 50
2026-06-10T22:49:44.7183530Z             }
2026-06-10T22:49:44.7183617Z           ]
2026-06-10T22:49:44.7183689Z         },
2026-06-10T22:49:44.7183774Z         "impl": {
2026-06-10T22:49:44.7183865Z           "complete": true,
2026-06-10T22:49:44.7184041Z           "evidence": [
2026-06-10T22:49:44.7184127Z             {
2026-06-10T22:49:44.7184246Z               "path": ".github/workflows/docs-publish.yml",
2026-06-10T22:49:44.7184338Z               "line": 12
2026-06-10T22:49:44.7184412Z             },
2026-06-10T22:49:44.7184488Z             {
2026-06-10T22:49:44.7184607Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.7184697Z               "line": 14
2026-06-10T22:49:44.7184772Z             }
2026-06-10T22:49:44.7184852Z           ]
2026-06-10T22:49:44.7184925Z         },
2026-06-10T22:49:44.7185021Z         "int": {
2026-06-10T22:49:44.7185116Z           "complete": false,
2026-06-10T22:49:44.7185201Z           "evidence": []
2026-06-10T22:49:44.7185287Z         },
2026-06-10T22:49:44.7185373Z         "unit": {
2026-06-10T22:49:44.7185468Z           "complete": false,
2026-06-10T22:49:44.7185564Z           "evidence": []
2026-06-10T22:49:44.7185645Z         }
2026-06-10T22:49:44.7185730Z       }
2026-06-10T22:49:44.7185815Z     },
2026-06-10T22:49:44.7185899Z     {
2026-06-10T22:49:44.7185988Z       "id": "REQ-DOCS-2",
2026-06-10T22:49:44.7186145Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-10T22:49:44.7186241Z       "requiredStages": [
2026-06-10T22:49:44.7186322Z         "doc",
2026-06-10T22:49:44.7186408Z         "int"
2026-06-10T22:49:44.7186479Z       ],
2026-06-10T22:49:44.7186570Z       "stages": {
2026-06-10T22:49:44.7186651Z         "doc": {
2026-06-10T22:49:44.7186746Z           "complete": true,
2026-06-10T22:49:44.7186838Z           "evidence": [
2026-06-10T22:49:44.7186914Z             {
2026-06-10T22:49:44.7187042Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-10T22:49:44.7187119Z               "line": 3
2026-06-10T22:49:44.7187196Z             },
2026-06-10T22:49:44.7187271Z             {
2026-06-10T22:49:44.7187403Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-10T22:49:44.7187484Z               "line": 3
2026-06-10T22:49:44.7187555Z             }
2026-06-10T22:49:44.7187635Z           ]
2026-06-10T22:49:44.7187710Z         },
2026-06-10T22:49:44.7187797Z         "impl": {
2026-06-10T22:49:44.7187879Z           "complete": false,
2026-06-10T22:49:44.7187973Z           "evidence": []
2026-06-10T22:49:44.7188058Z         },
2026-06-10T22:49:44.7188140Z         "int": {
2026-06-10T22:49:44.7188226Z           "complete": true,
2026-06-10T22:49:44.7188307Z           "evidence": [
2026-06-10T22:49:44.7188397Z             {
2026-06-10T22:49:44.7188513Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-10T22:49:44.7188612Z               "line": 14
2026-06-10T22:49:44.7188697Z             }
2026-06-10T22:49:44.7188770Z           ]
2026-06-10T22:49:44.7188856Z         },
2026-06-10T22:49:44.7188932Z         "unit": {
2026-06-10T22:49:44.7189118Z           "complete": false,
2026-06-10T22:49:44.7189208Z           "evidence": []
2026-06-10T22:49:44.7189284Z         }
2026-06-10T22:49:44.7189361Z       }
2026-06-10T22:49:44.7189447Z     },
2026-06-10T22:49:44.7189528Z     {
2026-06-10T22:49:44.7189623Z       "id": "REQ-DOCS-3",
2026-06-10T22:49:44.7189838Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-10T22:49:44.7189927Z       "requiredStages": [
2026-06-10T22:49:44.7190012Z         "doc"
2026-06-10T22:49:44.7190084Z       ],
2026-06-10T22:49:44.7190160Z       "stages": {
2026-06-10T22:49:44.7190234Z         "doc": {
2026-06-10T22:49:44.7190329Z           "complete": true,
2026-06-10T22:49:44.7190421Z           "evidence": [
2026-06-10T22:49:44.7190611Z             {
2026-06-10T22:49:44.7190722Z               "path": "docs-site/src/index.md",
2026-06-10T22:49:44.7190812Z               "line": 42
2026-06-10T22:49:44.7190882Z             }
2026-06-10T22:49:44.7190959Z           ]
2026-06-10T22:49:44.7191032Z         },
2026-06-10T22:49:44.7191117Z         "impl": {
2026-06-10T22:49:44.7191207Z           "complete": false,
2026-06-10T22:49:44.7191288Z           "evidence": []
2026-06-10T22:49:44.7191469Z         },
2026-06-10T22:49:44.7191540Z         "int": {
2026-06-10T22:49:44.7191637Z           "complete": false,
2026-06-10T22:49:44.7191714Z           "evidence": []
2026-06-10T22:49:44.7191804Z         },
2026-06-10T22:49:44.7191879Z         "unit": {
2026-06-10T22:49:44.7191976Z           "complete": false,
2026-06-10T22:49:44.7192066Z           "evidence": []
2026-06-10T22:49:44.7192142Z         }
2026-06-10T22:49:44.7192223Z       }
2026-06-10T22:49:44.7192305Z     },
2026-06-10T22:49:44.7192395Z     {
2026-06-10T22:49:44.7192480Z       "id": "REQ-DOCS-4",
2026-06-10T22:49:44.7192677Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-10T22:49:44.7192775Z       "requiredStages": [
2026-06-10T22:49:44.7192851Z         "doc",
2026-06-10T22:49:44.7192942Z         "impl",
2026-06-10T22:49:44.7193014Z         "unit"
2026-06-10T22:49:44.7193090Z       ],
2026-06-10T22:49:44.7193171Z       "stages": {
2026-06-10T22:49:44.7193247Z         "doc": {
2026-06-10T22:49:44.7193343Z           "complete": true,
2026-06-10T22:49:44.7193423Z           "evidence": [
2026-06-10T22:49:44.7193499Z             {
2026-06-10T22:49:44.7193601Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-10T22:49:44.7193686Z               "line": 35
2026-06-10T22:49:44.7193757Z             }
2026-06-10T22:49:44.7193838Z           ]
2026-06-10T22:49:44.7193911Z         },
2026-06-10T22:49:44.7193986Z         "impl": {
2026-06-10T22:49:44.7194081Z           "complete": true,
2026-06-10T22:49:44.7194162Z           "evidence": [
2026-06-10T22:49:44.7194254Z             {
2026-06-10T22:49:44.7194363Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7194453Z               "line": 522
2026-06-10T22:49:44.7194531Z             },
2026-06-10T22:49:44.7194606Z             {
2026-06-10T22:49:44.7194715Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.7194797Z               "line": 15
2026-06-10T22:49:44.7194884Z             }
2026-06-10T22:49:44.7194963Z           ]
2026-06-10T22:49:44.7195039Z         },
2026-06-10T22:49:44.7195124Z         "int": {
2026-06-10T22:49:44.7195216Z           "complete": false,
2026-06-10T22:49:44.7195304Z           "evidence": []
2026-06-10T22:49:44.7195380Z         },
2026-06-10T22:49:44.7195461Z         "unit": {
2026-06-10T22:49:44.7195552Z           "complete": true,
2026-06-10T22:49:44.7195647Z           "evidence": [
2026-06-10T22:49:44.7195727Z             {
2026-06-10T22:49:44.7195843Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7195933Z               "line": 978
2026-06-10T22:49:44.7196014Z             }
2026-06-10T22:49:44.7196090Z           ]
2026-06-10T22:49:44.7196163Z         }
2026-06-10T22:49:44.7196248Z       }
2026-06-10T22:49:44.7196324Z     },
2026-06-10T22:49:44.7196405Z     {
2026-06-10T22:49:44.7196501Z       "id": "REQ-DOCS-5",
2026-06-10T22:49:44.7196686Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-10T22:49:44.7196788Z       "requiredStages": [
2026-06-10T22:49:44.7196863Z         "impl",
2026-06-10T22:49:44.7196934Z         "int"
2026-06-10T22:49:44.7197015Z       ],
2026-06-10T22:49:44.7197088Z       "stages": {
2026-06-10T22:49:44.7197178Z         "doc": {
2026-06-10T22:49:44.7197268Z           "complete": false,
2026-06-10T22:49:44.7197359Z           "evidence": []
2026-06-10T22:49:44.7197436Z         },
2026-06-10T22:49:44.7197521Z         "impl": {
2026-06-10T22:49:44.7197607Z           "complete": true,
2026-06-10T22:49:44.7197694Z           "evidence": [
2026-06-10T22:49:44.7197859Z             {
2026-06-10T22:49:44.7197972Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7198064Z               "line": 523
2026-06-10T22:49:44.7198143Z             },
2026-06-10T22:49:44.7198219Z             {
2026-06-10T22:49:44.7198333Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.7198424Z               "line": 113
2026-06-10T22:49:44.7198514Z             }
2026-06-10T22:49:44.7198681Z           ]
2026-06-10T22:49:44.7198768Z         },
2026-06-10T22:49:44.7198848Z         "int": {
2026-06-10T22:49:44.7198933Z           "complete": true,
2026-06-10T22:49:44.7199120Z           "evidence": [
2026-06-10T22:49:44.7199196Z             {
2026-06-10T22:49:44.7199301Z               "path": ".github/workflows/ci.yml",
2026-06-10T22:49:44.7199382Z               "line": 86
2026-06-10T22:49:44.7199468Z             },
2026-06-10T22:49:44.7199544Z             {
2026-06-10T22:49:44.7199660Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7199763Z               "line": 1015
2026-06-10T22:49:44.7199840Z             }
2026-06-10T22:49:44.7199916Z           ]
2026-06-10T22:49:44.7199984Z         },
2026-06-10T22:49:44.7200060Z         "unit": {
2026-06-10T22:49:44.7200149Z           "complete": false,
2026-06-10T22:49:44.7200231Z           "evidence": []
2026-06-10T22:49:44.7200308Z         }
2026-06-10T22:49:44.7200379Z       }
2026-06-10T22:49:44.7200454Z     },
2026-06-10T22:49:44.7200534Z     {
2026-06-10T22:49:44.7200625Z       "id": "REQ-DOCS-6",
2026-06-10T22:49:44.7200933Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-10T22:49:44.7201029Z       "requiredStages": [
2026-06-10T22:49:44.7201114Z         "impl",
2026-06-10T22:49:44.7201200Z         "unit",
2026-06-10T22:49:44.7201272Z         "int"
2026-06-10T22:49:44.7201343Z       ],
2026-06-10T22:49:44.7201424Z       "stages": {
2026-06-10T22:49:44.7201505Z         "doc": {
2026-06-10T22:49:44.7201596Z           "complete": true,
2026-06-10T22:49:44.7201691Z           "evidence": [
2026-06-10T22:49:44.7201767Z             {
2026-06-10T22:49:44.7201883Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-10T22:49:44.7201959Z               "line": 4
2026-06-10T22:49:44.7202039Z             }
2026-06-10T22:49:44.7202115Z           ]
2026-06-10T22:49:44.7202202Z         },
2026-06-10T22:49:44.7202297Z         "impl": {
2026-06-10T22:49:44.7202373Z           "complete": true,
2026-06-10T22:49:44.7202468Z           "evidence": [
2026-06-10T22:49:44.7202536Z             {
2026-06-10T22:49:44.7202640Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7202717Z               "line": 4022
2026-06-10T22:49:44.7202798Z             }
2026-06-10T22:49:44.7202875Z           ]
2026-06-10T22:49:44.7202946Z         },
2026-06-10T22:49:44.7203026Z         "int": {
2026-06-10T22:49:44.7203108Z           "complete": true,
2026-06-10T22:49:44.7203194Z           "evidence": [
2026-06-10T22:49:44.7203275Z             {
2026-06-10T22:49:44.7203392Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-10T22:49:44.7203483Z               "line": 39
2026-06-10T22:49:44.7203560Z             }
2026-06-10T22:49:44.7203645Z           ]
2026-06-10T22:49:44.7203726Z         },
2026-06-10T22:49:44.7203812Z         "unit": {
2026-06-10T22:49:44.7203903Z           "complete": true,
2026-06-10T22:49:44.7204002Z           "evidence": [
2026-06-10T22:49:44.7204088Z             {
2026-06-10T22:49:44.7204185Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7204280Z               "line": 7672
2026-06-10T22:49:44.7204360Z             }
2026-06-10T22:49:44.7204447Z           ]
2026-06-10T22:49:44.7204528Z         }
2026-06-10T22:49:44.7204613Z       }
2026-06-10T22:49:44.7204699Z     },
2026-06-10T22:49:44.7204781Z     {
2026-06-10T22:49:44.7204880Z       "id": "REQ-EP-1",
2026-06-10T22:49:44.7205004Z       "title": "Day-one endpoint types; open type system",
2026-06-10T22:49:44.7205199Z       "requiredStages": [
2026-06-10T22:49:44.7205280Z         "impl",
2026-06-10T22:49:44.7205371Z         "unit"
2026-06-10T22:49:44.7205463Z       ],
2026-06-10T22:49:44.7205552Z       "stages": {
2026-06-10T22:49:44.7205637Z         "doc": {
2026-06-10T22:49:44.7205727Z           "complete": false,
2026-06-10T22:49:44.7205818Z           "evidence": []
2026-06-10T22:49:44.7205902Z         },
2026-06-10T22:49:44.7206088Z         "impl": {
2026-06-10T22:49:44.7206184Z           "complete": true,
2026-06-10T22:49:44.7206269Z           "evidence": [
2026-06-10T22:49:44.7206355Z             {
2026-06-10T22:49:44.7206474Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T22:49:44.7206564Z               "line": 77
2026-06-10T22:49:44.7206645Z             },
2026-06-10T22:49:44.7206737Z             {
2026-06-10T22:49:44.7206851Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T22:49:44.7206941Z               "line": 94
2026-06-10T22:49:44.7207028Z             }
2026-06-10T22:49:44.7207113Z           ]
2026-06-10T22:49:44.7207199Z         },
2026-06-10T22:49:44.7207280Z         "int": {
2026-06-10T22:49:44.7207372Z           "complete": false,
2026-06-10T22:49:44.7207461Z           "evidence": []
2026-06-10T22:49:44.7207542Z         },
2026-06-10T22:49:44.7207629Z         "unit": {
2026-06-10T22:49:44.7207724Z           "complete": true,
2026-06-10T22:49:44.7207814Z           "evidence": [
2026-06-10T22:49:44.7207900Z             {
2026-06-10T22:49:44.7208020Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T22:49:44.7208114Z               "line": 161
2026-06-10T22:49:44.7208200Z             },
2026-06-10T22:49:44.7208282Z             {
2026-06-10T22:49:44.7208396Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T22:49:44.7208495Z               "line": 178
2026-06-10T22:49:44.7208581Z             }
2026-06-10T22:49:44.7208666Z           ]
2026-06-10T22:49:44.7208759Z         }
2026-06-10T22:49:44.7208840Z       }
2026-06-10T22:49:44.7208936Z     },
2026-06-10T22:49:44.7209098Z     {
2026-06-10T22:49:44.7209203Z       "id": "REQ-EP-2",
2026-06-10T22:49:44.7209366Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-10T22:49:44.7209460Z       "requiredStages": [
2026-06-10T22:49:44.7209551Z         "impl",
2026-06-10T22:49:44.7209633Z         "unit"
2026-06-10T22:49:44.7209718Z       ],
2026-06-10T22:49:44.7209799Z       "stages": {
2026-06-10T22:49:44.7209900Z         "doc": {
2026-06-10T22:49:44.7209994Z           "complete": false,
2026-06-10T22:49:44.7210085Z           "evidence": []
2026-06-10T22:49:44.7210176Z         },
2026-06-10T22:49:44.7210257Z         "impl": {
2026-06-10T22:49:44.7210352Z           "complete": true,
2026-06-10T22:49:44.7210438Z           "evidence": [
2026-06-10T22:49:44.7210525Z             {
2026-06-10T22:49:44.7210638Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T22:49:44.7210734Z               "line": 114
2026-06-10T22:49:44.7210825Z             },
2026-06-10T22:49:44.7210906Z             {
2026-06-10T22:49:44.7211024Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T22:49:44.7211109Z               "line": 131
2026-06-10T22:49:44.7211200Z             },
2026-06-10T22:49:44.7211280Z             {
2026-06-10T22:49:44.7211397Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T22:49:44.7211488Z               "line": 138
2026-06-10T22:49:44.7211580Z             }
2026-06-10T22:49:44.7211665Z           ]
2026-06-10T22:49:44.7211745Z         },
2026-06-10T22:49:44.7211837Z         "int": {
2026-06-10T22:49:44.7211927Z           "complete": false,
2026-06-10T22:49:44.7212022Z           "evidence": []
2026-06-10T22:49:44.7212108Z         },
2026-06-10T22:49:44.7212190Z         "unit": {
2026-06-10T22:49:44.7212285Z           "complete": true,
2026-06-10T22:49:44.7212370Z           "evidence": [
2026-06-10T22:49:44.7212457Z             {
2026-06-10T22:49:44.7212571Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T22:49:44.7212762Z               "line": 190
2026-06-10T22:49:44.7212852Z             },
2026-06-10T22:49:44.7212933Z             {
2026-06-10T22:49:44.7213053Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T22:49:44.7213139Z               "line": 208
2026-06-10T22:49:44.7213229Z             },
2026-06-10T22:49:44.7213310Z             {
2026-06-10T22:49:44.7213430Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T22:49:44.7213620Z               "line": 221
2026-06-10T22:49:44.7213702Z             }
2026-06-10T22:49:44.7213793Z           ]
2026-06-10T22:49:44.7213877Z         }
2026-06-10T22:49:44.7213966Z       }
2026-06-10T22:49:44.7214043Z     },
2026-06-10T22:49:44.7214130Z     {
2026-06-10T22:49:44.7214224Z       "id": "REQ-EP-3",
2026-06-10T22:49:44.7214391Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-10T22:49:44.7214482Z       "requiredStages": [
2026-06-10T22:49:44.7214563Z         "impl",
2026-06-10T22:49:44.7214658Z         "unit"
2026-06-10T22:49:44.7214735Z       ],
2026-06-10T22:49:44.7214826Z       "stages": {
2026-06-10T22:49:44.7214910Z         "doc": {
2026-06-10T22:49:44.7215002Z           "complete": false,
2026-06-10T22:49:44.7215088Z           "evidence": []
2026-06-10T22:49:44.7215159Z         },
2026-06-10T22:49:44.7215239Z         "impl": {
2026-06-10T22:49:44.7215327Z           "complete": true,
2026-06-10T22:49:44.7215422Z           "evidence": [
2026-06-10T22:49:44.7215507Z             {
2026-06-10T22:49:44.7215622Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T22:49:44.7215718Z               "line": 31
2026-06-10T22:49:44.7215792Z             },
2026-06-10T22:49:44.7215874Z             {
2026-06-10T22:49:44.7215990Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T22:49:44.7216079Z               "line": 49
2026-06-10T22:49:44.7216164Z             }
2026-06-10T22:49:44.7216249Z           ]
2026-06-10T22:49:44.7216340Z         },
2026-06-10T22:49:44.7216429Z         "int": {
2026-06-10T22:49:44.7216529Z           "complete": false,
2026-06-10T22:49:44.7216614Z           "evidence": []
2026-06-10T22:49:44.7216706Z         },
2026-06-10T22:49:44.7216791Z         "unit": {
2026-06-10T22:49:44.7216886Z           "complete": true,
2026-06-10T22:49:44.7216978Z           "evidence": [
2026-06-10T22:49:44.7217059Z             {
2026-06-10T22:49:44.7217182Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T22:49:44.7217274Z               "line": 156
2026-06-10T22:49:44.7217363Z             },
2026-06-10T22:49:44.7217448Z             {
2026-06-10T22:49:44.7217559Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T22:49:44.7217654Z               "line": 164
2026-06-10T22:49:44.7217735Z             },
2026-06-10T22:49:44.7217821Z             {
2026-06-10T22:49:44.7217932Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T22:49:44.7218026Z               "line": 177
2026-06-10T22:49:44.7218116Z             },
2026-06-10T22:49:44.7218203Z             {
2026-06-10T22:49:44.7218321Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T22:49:44.7218407Z               "line": 200
2026-06-10T22:49:44.7218494Z             },
2026-06-10T22:49:44.7218576Z             {
2026-06-10T22:49:44.7218693Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T22:49:44.7218784Z               "line": 216
2026-06-10T22:49:44.7218881Z             },
2026-06-10T22:49:44.7219055Z             {
2026-06-10T22:49:44.7219164Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T22:49:44.7219259Z               "line": 233
2026-06-10T22:49:44.7219348Z             }
2026-06-10T22:49:44.7219433Z           ]
2026-06-10T22:49:44.7219515Z         }
2026-06-10T22:49:44.7219597Z       }
2026-06-10T22:49:44.7219686Z     },
2026-06-10T22:49:44.7219767Z     {
2026-06-10T22:49:44.7219868Z       "id": "REQ-EP-4",
2026-06-10T22:49:44.7220011Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-10T22:49:44.7220235Z       "requiredStages": [
2026-06-10T22:49:44.7220382Z         "impl",
2026-06-10T22:49:44.7220465Z         "unit"
2026-06-10T22:49:44.7220550Z       ],
2026-06-10T22:49:44.7220635Z       "stages": {
2026-06-10T22:49:44.7220726Z         "doc": {
2026-06-10T22:49:44.7220818Z           "complete": false,
2026-06-10T22:49:44.7220912Z           "evidence": []
2026-06-10T22:49:44.7220998Z         },
2026-06-10T22:49:44.7221180Z         "impl": {
2026-06-10T22:49:44.7221279Z           "complete": true,
2026-06-10T22:49:44.7221366Z           "evidence": [
2026-06-10T22:49:44.7221452Z             {
2026-06-10T22:49:44.7221575Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7221664Z               "line": 538
2026-06-10T22:49:44.7221751Z             },
2026-06-10T22:49:44.7221830Z             {
2026-06-10T22:49:44.7221948Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7222039Z               "line": 852
2026-06-10T22:49:44.7222130Z             },
2026-06-10T22:49:44.7222225Z             {
2026-06-10T22:49:44.7222349Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7222440Z               "line": 970
2026-06-10T22:49:44.7222516Z             },
2026-06-10T22:49:44.7222606Z             {
2026-06-10T22:49:44.7222712Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T22:49:44.7222807Z               "line": 83
2026-06-10T22:49:44.7222902Z             },
2026-06-10T22:49:44.7222979Z             {
2026-06-10T22:49:44.7223088Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T22:49:44.7223179Z               "line": 497
2026-06-10T22:49:44.7223269Z             },
2026-06-10T22:49:44.7223347Z             {
2026-06-10T22:49:44.7223455Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T22:49:44.7223541Z               "line": 583
2026-06-10T22:49:44.7223622Z             },
2026-06-10T22:49:44.7223709Z             {
2026-06-10T22:49:44.7223817Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7223918Z               "line": 196
2026-06-10T22:49:44.7224000Z             },
2026-06-10T22:49:44.7224089Z             {
2026-06-10T22:49:44.7224208Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7224296Z               "line": 337
2026-06-10T22:49:44.7224381Z             },
2026-06-10T22:49:44.7224461Z             {
2026-06-10T22:49:44.7224574Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7224676Z               "line": 847
2026-06-10T22:49:44.7224766Z             }
2026-06-10T22:49:44.7224855Z           ]
2026-06-10T22:49:44.7224938Z         },
2026-06-10T22:49:44.7225028Z         "int": {
2026-06-10T22:49:44.7225118Z           "complete": false,
2026-06-10T22:49:44.7225213Z           "evidence": []
2026-06-10T22:49:44.7225295Z         },
2026-06-10T22:49:44.7225386Z         "unit": {
2026-06-10T22:49:44.7225480Z           "complete": true,
2026-06-10T22:49:44.7225572Z           "evidence": [
2026-06-10T22:49:44.7225667Z             {
2026-06-10T22:49:44.7225776Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T22:49:44.7225867Z               "line": 674
2026-06-10T22:49:44.7225949Z             },
2026-06-10T22:49:44.7226038Z             {
2026-06-10T22:49:44.7226168Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-10T22:49:44.7226254Z               "line": 76
2026-06-10T22:49:44.7226334Z             },
2026-06-10T22:49:44.7226425Z             {
2026-06-10T22:49:44.7226550Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-10T22:49:44.7226626Z               "line": 147
2026-06-10T22:49:44.7226714Z             }
2026-06-10T22:49:44.7226791Z           ]
2026-06-10T22:49:44.7226867Z         }
2026-06-10T22:49:44.7226943Z       }
2026-06-10T22:49:44.7227017Z     },
2026-06-10T22:49:44.7227103Z     {
2026-06-10T22:49:44.7227184Z       "id": "REQ-EP-5",
2026-06-10T22:49:44.7227805Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-10T22:49:44.7227999Z       "requiredStages": [
2026-06-10T22:49:44.7228085Z         "impl",
2026-06-10T22:49:44.7228167Z         "unit",
2026-06-10T22:49:44.7228248Z         "int"
2026-06-10T22:49:44.7228328Z       ],
2026-06-10T22:49:44.7228419Z       "stages": {
2026-06-10T22:49:44.7228571Z         "doc": {
2026-06-10T22:49:44.7228667Z           "complete": false,
2026-06-10T22:49:44.7228754Z           "evidence": []
2026-06-10T22:49:44.7228845Z         },
2026-06-10T22:49:44.7228929Z         "impl": {
2026-06-10T22:49:44.7229097Z           "complete": true,
2026-06-10T22:49:44.7229187Z           "evidence": [
2026-06-10T22:49:44.7229278Z             {
2026-06-10T22:49:44.7229412Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7229498Z               "line": 351
2026-06-10T22:49:44.7229601Z             },
2026-06-10T22:49:44.7229691Z             {
2026-06-10T22:49:44.7229810Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T22:49:44.7229903Z               "line": 18
2026-06-10T22:49:44.7229984Z             },
2026-06-10T22:49:44.7230071Z             {
2026-06-10T22:49:44.7230181Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T22:49:44.7230270Z               "line": 63
2026-06-10T22:49:44.7230366Z             },
2026-06-10T22:49:44.7230452Z             {
2026-06-10T22:49:44.7230571Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T22:49:44.7230657Z               "line": 92
2026-06-10T22:49:44.7230744Z             },
2026-06-10T22:49:44.7230829Z             {
2026-06-10T22:49:44.7230948Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T22:49:44.7231035Z               "line": 167
2026-06-10T22:49:44.7231119Z             },
2026-06-10T22:49:44.7231205Z             {
2026-06-10T22:49:44.7231320Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T22:49:44.7231420Z               "line": 179
2026-06-10T22:49:44.7231506Z             },
2026-06-10T22:49:44.7231591Z             {
2026-06-10T22:49:44.7231707Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7231796Z               "line": 114
2026-06-10T22:49:44.7231887Z             },
2026-06-10T22:49:44.7231969Z             {
2026-06-10T22:49:44.7232106Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T22:49:44.7232191Z               "line": 22
2026-06-10T22:49:44.7232277Z             },
2026-06-10T22:49:44.7232358Z             {
2026-06-10T22:49:44.7232485Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T22:49:44.7232580Z               "line": 129
2026-06-10T22:49:44.7232661Z             },
2026-06-10T22:49:44.7232752Z             {
2026-06-10T22:49:44.7232861Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T22:49:44.7232958Z               "line": 156
2026-06-10T22:49:44.7233048Z             },
2026-06-10T22:49:44.7233138Z             {
2026-06-10T22:49:44.7233253Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T22:49:44.7233343Z               "line": 178
2026-06-10T22:49:44.7233429Z             },
2026-06-10T22:49:44.7233509Z             {
2026-06-10T22:49:44.7233625Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T22:49:44.7233715Z               "line": 203
2026-06-10T22:49:44.7233810Z             },
2026-06-10T22:49:44.7233897Z             {
2026-06-10T22:49:44.7234006Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T22:49:44.7234096Z               "line": 229
2026-06-10T22:49:44.7234178Z             },
2026-06-10T22:49:44.7234264Z             {
2026-06-10T22:49:44.7234382Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T22:49:44.7234468Z               "line": 252
2026-06-10T22:49:44.7234556Z             },
2026-06-10T22:49:44.7234640Z             {
2026-06-10T22:49:44.7234870Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.7234955Z               "line": 81
2026-06-10T22:49:44.7235049Z             },
2026-06-10T22:49:44.7235135Z             {
2026-06-10T22:49:44.7235236Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7235330Z               "line": 4327
2026-06-10T22:49:44.7235415Z             },
2026-06-10T22:49:44.7235507Z             {
2026-06-10T22:49:44.7235707Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7235803Z               "line": 4450
2026-06-10T22:49:44.7235893Z             },
2026-06-10T22:49:44.7235974Z             {
2026-06-10T22:49:44.7236079Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7236165Z               "line": 4611
2026-06-10T22:49:44.7236256Z             },
2026-06-10T22:49:44.7236336Z             {
2026-06-10T22:49:44.7236442Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7236537Z               "line": 4993
2026-06-10T22:49:44.7236628Z             }
2026-06-10T22:49:44.7236713Z           ]
2026-06-10T22:49:44.7236795Z         },
2026-06-10T22:49:44.7236885Z         "int": {
2026-06-10T22:49:44.7236975Z           "complete": true,
2026-06-10T22:49:44.7237071Z           "evidence": [
2026-06-10T22:49:44.7237157Z             {
2026-06-10T22:49:44.7237279Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-10T22:49:44.7239672Z               "line": 16
2026-06-10T22:49:44.7239794Z             },
2026-06-10T22:49:44.7239885Z             {
2026-06-10T22:49:44.7240006Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-10T22:49:44.7240100Z               "line": 15
2026-06-10T22:49:44.7240190Z             }
2026-06-10T22:49:44.7240261Z           ]
2026-06-10T22:49:44.7240347Z         },
2026-06-10T22:49:44.7240431Z         "unit": {
2026-06-10T22:49:44.7240525Z           "complete": true,
2026-06-10T22:49:44.7240616Z           "evidence": [
2026-06-10T22:49:44.7240707Z             {
2026-06-10T22:49:44.7240845Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T22:49:44.7240936Z               "line": 246
2026-06-10T22:49:44.7241031Z             },
2026-06-10T22:49:44.7241103Z             {
2026-06-10T22:49:44.7241222Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T22:49:44.7241299Z               "line": 306
2026-06-10T22:49:44.7241385Z             },
2026-06-10T22:49:44.7241469Z             {
2026-06-10T22:49:44.7241595Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T22:49:44.7241684Z               "line": 362
2026-06-10T22:49:44.7241761Z             },
2026-06-10T22:49:44.7241851Z             {
2026-06-10T22:49:44.7241971Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T22:49:44.7242061Z               "line": 268
2026-06-10T22:49:44.7242147Z             },
2026-06-10T22:49:44.7242229Z             {
2026-06-10T22:49:44.7242346Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T22:49:44.7242438Z               "line": 291
2026-06-10T22:49:44.7242534Z             },
2026-06-10T22:49:44.7242620Z             {
2026-06-10T22:49:44.7242747Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.7242837Z               "line": 491
2026-06-10T22:49:44.7242918Z             },
2026-06-10T22:49:44.7243002Z             {
2026-06-10T22:49:44.7243106Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7243202Z               "line": 5802
2026-06-10T22:49:44.7243289Z             },
2026-06-10T22:49:44.7243378Z             {
2026-06-10T22:49:44.7243484Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7243570Z               "line": 5926
2026-06-10T22:49:44.7243655Z             },
2026-06-10T22:49:44.7243741Z             {
2026-06-10T22:49:44.7243847Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7243937Z               "line": 6513
2026-06-10T22:49:44.7244022Z             },
2026-06-10T22:49:44.7244104Z             {
2026-06-10T22:49:44.7244204Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7244438Z               "line": 6578
2026-06-10T22:49:44.7244523Z             }
2026-06-10T22:49:44.7244609Z           ]
2026-06-10T22:49:44.7244695Z         }
2026-06-10T22:49:44.7244786Z       }
2026-06-10T22:49:44.7244871Z     },
2026-06-10T22:49:44.7244952Z     {
2026-06-10T22:49:44.7245048Z       "id": "REQ-FRONT-1",
2026-06-10T22:49:44.7245223Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-10T22:49:44.7245426Z       "requiredStages": [],
2026-06-10T22:49:44.7245519Z       "stages": {
2026-06-10T22:49:44.7245605Z         "doc": {
2026-06-10T22:49:44.7245705Z           "complete": false,
2026-06-10T22:49:44.7245791Z           "evidence": []
2026-06-10T22:49:44.7245886Z         },
2026-06-10T22:49:44.7245966Z         "impl": {
2026-06-10T22:49:44.7246062Z           "complete": false,
2026-06-10T22:49:44.7246158Z           "evidence": []
2026-06-10T22:49:44.7246238Z         },
2026-06-10T22:49:44.7246329Z         "int": {
2026-06-10T22:49:44.7246425Z           "complete": false,
2026-06-10T22:49:44.7246516Z           "evidence": []
2026-06-10T22:49:44.7246601Z         },
2026-06-10T22:49:44.7246692Z         "unit": {
2026-06-10T22:49:44.7246782Z           "complete": false,
2026-06-10T22:49:44.7246877Z           "evidence": []
2026-06-10T22:49:44.7246968Z         }
2026-06-10T22:49:44.7247050Z       }
2026-06-10T22:49:44.7247140Z     },
2026-06-10T22:49:44.7247226Z     {
2026-06-10T22:49:44.7247356Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-10T22:49:44.7250069Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-10T22:49:44.7250189Z       "requiredStages": [
2026-06-10T22:49:44.7250289Z         "doc",
2026-06-10T22:49:44.7250378Z         "impl",
2026-06-10T22:49:44.7250465Z         "unit",
2026-06-10T22:49:44.7250561Z         "int"
2026-06-10T22:49:44.7250641Z       ],
2026-06-10T22:49:44.7250735Z       "stages": {
2026-06-10T22:49:44.7250826Z         "doc": {
2026-06-10T22:49:44.7250916Z           "complete": true,
2026-06-10T22:49:44.7251015Z           "evidence": [
2026-06-10T22:49:44.7251100Z             {
2026-06-10T22:49:44.7251215Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T22:49:44.7251301Z               "line": 288
2026-06-10T22:49:44.7251400Z             }
2026-06-10T22:49:44.7251487Z           ]
2026-06-10T22:49:44.7251573Z         },
2026-06-10T22:49:44.7251663Z         "impl": {
2026-06-10T22:49:44.7251753Z           "complete": true,
2026-06-10T22:49:44.7251845Z           "evidence": [
2026-06-10T22:49:44.7251925Z             {
2026-06-10T22:49:44.7252063Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.7252145Z               "line": 108
2026-06-10T22:49:44.7252235Z             },
2026-06-10T22:49:44.7252321Z             {
2026-06-10T22:49:44.7252436Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7252527Z               "line": 594
2026-06-10T22:49:44.7252616Z             },
2026-06-10T22:49:44.7252693Z             {
2026-06-10T22:49:44.7252808Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7252888Z               "line": 798
2026-06-10T22:49:44.7252974Z             },
2026-06-10T22:49:44.7253051Z             {
2026-06-10T22:49:44.7253288Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7253383Z               "line": 23
2026-06-10T22:49:44.7253459Z             },
2026-06-10T22:49:44.7253548Z             {
2026-06-10T22:49:44.7253662Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7253753Z               "line": 113
2026-06-10T22:49:44.7253835Z             },
2026-06-10T22:49:44.7253919Z             {
2026-06-10T22:49:44.7254144Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7254234Z               "line": 158
2026-06-10T22:49:44.7254320Z             },
2026-06-10T22:49:44.7254397Z             {
2026-06-10T22:49:44.7254512Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7254601Z               "line": 215
2026-06-10T22:49:44.7254688Z             },
2026-06-10T22:49:44.7254764Z             {
2026-06-10T22:49:44.7254878Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7254978Z               "line": 247
2026-06-10T22:49:44.7255056Z             },
2026-06-10T22:49:44.7255150Z             {
2026-06-10T22:49:44.7255265Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7255361Z               "line": 261
2026-06-10T22:49:44.7255450Z             },
2026-06-10T22:49:44.7255531Z             {
2026-06-10T22:49:44.7255651Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7255737Z               "line": 306
2026-06-10T22:49:44.7255817Z             },
2026-06-10T22:49:44.7255894Z             {
2026-06-10T22:49:44.7256005Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7256098Z               "line": 333
2026-06-10T22:49:44.7256174Z             },
2026-06-10T22:49:44.7256255Z             {
2026-06-10T22:49:44.7256365Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7256460Z               "line": 345
2026-06-10T22:49:44.7256531Z             },
2026-06-10T22:49:44.7256627Z             {
2026-06-10T22:49:44.7256742Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7256822Z               "line": 359
2026-06-10T22:49:44.7256909Z             },
2026-06-10T22:49:44.7256981Z             {
2026-06-10T22:49:44.7257099Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7257189Z               "line": 386
2026-06-10T22:49:44.7257272Z             },
2026-06-10T22:49:44.7257371Z             {
2026-06-10T22:49:44.7257480Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7257572Z               "line": 606
2026-06-10T22:49:44.7257653Z             },
2026-06-10T22:49:44.7257748Z             {
2026-06-10T22:49:44.7257868Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7257953Z               "line": 857
2026-06-10T22:49:44.7258043Z             },
2026-06-10T22:49:44.7258124Z             {
2026-06-10T22:49:44.7258245Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7258338Z               "line": 111
2026-06-10T22:49:44.7258423Z             },
2026-06-10T22:49:44.7258509Z             {
2026-06-10T22:49:44.7258628Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7258717Z               "line": 296
2026-06-10T22:49:44.7258797Z             },
2026-06-10T22:49:44.7258889Z             {
2026-06-10T22:49:44.7259093Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7259199Z               "line": 368
2026-06-10T22:49:44.7259290Z             },
2026-06-10T22:49:44.7259370Z             {
2026-06-10T22:49:44.7259485Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7259571Z               "line": 380
2026-06-10T22:49:44.7259656Z             },
2026-06-10T22:49:44.7259741Z             {
2026-06-10T22:49:44.7259857Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7259947Z               "line": 716
2026-06-10T22:49:44.7260033Z             },
2026-06-10T22:49:44.7260224Z             {
2026-06-10T22:49:44.7260338Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7260429Z               "line": 181
2026-06-10T22:49:44.7260511Z             },
2026-06-10T22:49:44.7260600Z             {
2026-06-10T22:49:44.7260710Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7260802Z               "line": 223
2026-06-10T22:49:44.7260891Z             },
2026-06-10T22:49:44.7261073Z             {
2026-06-10T22:49:44.7261192Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7261277Z               "line": 234
2026-06-10T22:49:44.7261367Z             },
2026-06-10T22:49:44.7261453Z             {
2026-06-10T22:49:44.7261565Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7261660Z               "line": 260
2026-06-10T22:49:44.7261751Z             },
2026-06-10T22:49:44.7261837Z             {
2026-06-10T22:49:44.7261951Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7262052Z               "line": 56
2026-06-10T22:49:44.7262138Z             },
2026-06-10T22:49:44.7262218Z             {
2026-06-10T22:49:44.7262337Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7262424Z               "line": 188
2026-06-10T22:49:44.7262515Z             },
2026-06-10T22:49:44.7262599Z             {
2026-06-10T22:49:44.7262710Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-10T22:49:44.7262819Z               "line": 63
2026-06-10T22:49:44.7262900Z             },
2026-06-10T22:49:44.7262986Z             {
2026-06-10T22:49:44.7263101Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7263191Z               "line": 258
2026-06-10T22:49:44.7263282Z             },
2026-06-10T22:49:44.7263363Z             {
2026-06-10T22:49:44.7263477Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.7263563Z               "line": 413
2026-06-10T22:49:44.7263650Z             },
2026-06-10T22:49:44.7263740Z             {
2026-06-10T22:49:44.7263848Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7263938Z               "line": 1334
2026-06-10T22:49:44.7264019Z             }
2026-06-10T22:49:44.7264104Z           ]
2026-06-10T22:49:44.7264188Z         },
2026-06-10T22:49:44.7264275Z         "int": {
2026-06-10T22:49:44.7264371Z           "complete": true,
2026-06-10T22:49:44.7264461Z           "evidence": [
2026-06-10T22:49:44.7264556Z             {
2026-06-10T22:49:44.7264676Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-10T22:49:44.7264767Z               "line": 57
2026-06-10T22:49:44.7264851Z             },
2026-06-10T22:49:44.7264938Z             {
2026-06-10T22:49:44.7265052Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-10T22:49:44.7265147Z               "line": 41
2026-06-10T22:49:44.7265234Z             }
2026-06-10T22:49:44.7265315Z           ]
2026-06-10T22:49:44.7265410Z         },
2026-06-10T22:49:44.7265495Z         "unit": {
2026-06-10T22:49:44.7265601Z           "complete": true,
2026-06-10T22:49:44.7265686Z           "evidence": [
2026-06-10T22:49:44.7265776Z             {
2026-06-10T22:49:44.7265897Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.7265987Z               "line": 532
2026-06-10T22:49:44.7266077Z             },
2026-06-10T22:49:44.7266159Z             {
2026-06-10T22:49:44.7266279Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.7266372Z               "line": 754
2026-06-10T22:49:44.7266464Z             },
2026-06-10T22:49:44.7266546Z             {
2026-06-10T22:49:44.7266663Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7266763Z               "line": 915
2026-06-10T22:49:44.7266844Z             },
2026-06-10T22:49:44.7266930Z             {
2026-06-10T22:49:44.7267044Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7267139Z               "line": 949
2026-06-10T22:49:44.7267307Z             },
2026-06-10T22:49:44.7267392Z             {
2026-06-10T22:49:44.7267512Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7267602Z               "line": 991
2026-06-10T22:49:44.7267692Z             },
2026-06-10T22:49:44.7267774Z             {
2026-06-10T22:49:44.7267889Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7267970Z               "line": 1063
2026-06-10T22:49:44.7268122Z             },
2026-06-10T22:49:44.7268194Z             {
2026-06-10T22:49:44.7268308Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7268398Z               "line": 1076
2026-06-10T22:49:44.7268485Z             },
2026-06-10T22:49:44.7268560Z             {
2026-06-10T22:49:44.7268675Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7268762Z               "line": 1099
2026-06-10T22:49:44.7268843Z             },
2026-06-10T22:49:44.7268922Z             {
2026-06-10T22:49:44.7269127Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7269220Z               "line": 1125
2026-06-10T22:49:44.7269296Z             },
2026-06-10T22:49:44.7269382Z             {
2026-06-10T22:49:44.7269488Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7269582Z               "line": 1139
2026-06-10T22:49:44.7269653Z             },
2026-06-10T22:49:44.7269745Z             {
2026-06-10T22:49:44.7269864Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7269944Z               "line": 1163
2026-06-10T22:49:44.7270031Z             },
2026-06-10T22:49:44.7270112Z             {
2026-06-10T22:49:44.7270230Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7270316Z               "line": 1275
2026-06-10T22:49:44.7270404Z             },
2026-06-10T22:49:44.7270489Z             {
2026-06-10T22:49:44.7270602Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7270694Z               "line": 1322
2026-06-10T22:49:44.7270779Z             },
2026-06-10T22:49:44.7270874Z             {
2026-06-10T22:49:44.7270985Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7271080Z               "line": 1377
2026-06-10T22:49:44.7271175Z             },
2026-06-10T22:49:44.7271256Z             {
2026-06-10T22:49:44.7271372Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7271489Z               "line": 1423
2026-06-10T22:49:44.7271575Z             },
2026-06-10T22:49:44.7271663Z             {
2026-06-10T22:49:44.7271780Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7271874Z               "line": 1468
2026-06-10T22:49:44.7271955Z             },
2026-06-10T22:49:44.7272046Z             {
2026-06-10T22:49:44.7272159Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7272254Z               "line": 1512
2026-06-10T22:49:44.7272335Z             },
2026-06-10T22:49:44.7272426Z             {
2026-06-10T22:49:44.7272549Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7272641Z               "line": 1554
2026-06-10T22:49:44.7272726Z             },
2026-06-10T22:49:44.7272812Z             {
2026-06-10T22:49:44.7272922Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7273012Z               "line": 1029
2026-06-10T22:49:44.7273103Z             },
2026-06-10T22:49:44.7273231Z             {
2026-06-10T22:49:44.7273346Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7273441Z               "line": 217
2026-06-10T22:49:44.7273527Z             },
2026-06-10T22:49:44.7273609Z             {
2026-06-10T22:49:44.7273736Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7273822Z               "line": 233
2026-06-10T22:49:44.7273910Z             },
2026-06-10T22:49:44.7273999Z             {
2026-06-10T22:49:44.7274118Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7274314Z               "line": 254
2026-06-10T22:49:44.7274403Z             },
2026-06-10T22:49:44.7274489Z             {
2026-06-10T22:49:44.7274599Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7274692Z               "line": 265
2026-06-10T22:49:44.7274772Z             },
2026-06-10T22:49:44.7274859Z             {
2026-06-10T22:49:44.7274970Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7275164Z               "line": 278
2026-06-10T22:49:44.7275251Z             },
2026-06-10T22:49:44.7275331Z             {
2026-06-10T22:49:44.7275445Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7275527Z               "line": 289
2026-06-10T22:49:44.7275617Z             },
2026-06-10T22:49:44.7275693Z             {
2026-06-10T22:49:44.7275814Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7275904Z               "line": 301
2026-06-10T22:49:44.7275985Z             },
2026-06-10T22:49:44.7276075Z             {
2026-06-10T22:49:44.7276185Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7276275Z               "line": 312
2026-06-10T22:49:44.7276360Z             },
2026-06-10T22:49:44.7276448Z             {
2026-06-10T22:49:44.7276566Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7276657Z               "line": 323
2026-06-10T22:49:44.7276738Z             },
2026-06-10T22:49:44.7276829Z             {
2026-06-10T22:49:44.7276942Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7277034Z               "line": 332
2026-06-10T22:49:44.7277115Z             },
2026-06-10T22:49:44.7277205Z             {
2026-06-10T22:49:44.7277318Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7277409Z               "line": 342
2026-06-10T22:49:44.7277490Z             },
2026-06-10T22:49:44.7277571Z             {
2026-06-10T22:49:44.7277694Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-10T22:49:44.7277787Z               "line": 358
2026-06-10T22:49:44.7277872Z             },
2026-06-10T22:49:44.7277957Z             {
2026-06-10T22:49:44.7278072Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7278162Z               "line": 708
2026-06-10T22:49:44.7278248Z             },
2026-06-10T22:49:44.7278334Z             {
2026-06-10T22:49:44.7278444Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7278549Z               "line": 744
2026-06-10T22:49:44.7278629Z             },
2026-06-10T22:49:44.7278716Z             {
2026-06-10T22:49:44.7278825Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.7278915Z               "line": 934
2026-06-10T22:49:44.7279097Z             },
2026-06-10T22:49:44.7279168Z             {
2026-06-10T22:49:44.7279287Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-10T22:49:44.7279370Z               "line": 142
2026-06-10T22:49:44.7279459Z             },
2026-06-10T22:49:44.7279549Z             {
2026-06-10T22:49:44.7279663Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-10T22:49:44.7279753Z               "line": 221
2026-06-10T22:49:44.7279837Z             },
2026-06-10T22:49:44.7279922Z             {
2026-06-10T22:49:44.7280033Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-10T22:49:44.7280128Z               "line": 290
2026-06-10T22:49:44.7280218Z             },
2026-06-10T22:49:44.7280309Z             {
2026-06-10T22:49:44.7280429Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-10T22:49:44.7280514Z               "line": 17
2026-06-10T22:49:44.7280600Z             },
2026-06-10T22:49:44.7280672Z             {
2026-06-10T22:49:44.7280790Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-10T22:49:44.7280881Z               "line": 104
2026-06-10T22:49:44.7280964Z             }
2026-06-10T22:49:44.7281039Z           ]
2026-06-10T22:49:44.7281115Z         }
2026-06-10T22:49:44.7281297Z       }
2026-06-10T22:49:44.7281377Z     },
2026-06-10T22:49:44.7281463Z     {
2026-06-10T22:49:44.7281574Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-10T22:49:44.7281749Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-10T22:49:44.7281845Z       "requiredStages": [
2026-06-10T22:49:44.7281918Z         "impl",
2026-06-10T22:49:44.7282011Z         "unit"
2026-06-10T22:49:44.7282088Z       ],
2026-06-10T22:49:44.7282275Z       "stages": {
2026-06-10T22:49:44.7282364Z         "doc": {
2026-06-10T22:49:44.7282453Z           "complete": false,
2026-06-10T22:49:44.7282549Z           "evidence": []
2026-06-10T22:49:44.7282629Z         },
2026-06-10T22:49:44.7282719Z         "impl": {
2026-06-10T22:49:44.7282814Z           "complete": true,
2026-06-10T22:49:44.7282905Z           "evidence": [
2026-06-10T22:49:44.7282977Z             {
2026-06-10T22:49:44.7283095Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.7283187Z               "line": 149
2026-06-10T22:49:44.7283282Z             },
2026-06-10T22:49:44.7283367Z             {
2026-06-10T22:49:44.7283477Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.7283563Z               "line": 18
2026-06-10T22:49:44.7283639Z             },
2026-06-10T22:49:44.7283720Z             {
2026-06-10T22:49:44.7283826Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.7283920Z               "line": 98
2026-06-10T22:49:44.7284011Z             }
2026-06-10T22:49:44.7284082Z           ]
2026-06-10T22:49:44.7284160Z         },
2026-06-10T22:49:44.7284244Z         "int": {
2026-06-10T22:49:44.7284340Z           "complete": false,
2026-06-10T22:49:44.7284431Z           "evidence": []
2026-06-10T22:49:44.7284507Z         },
2026-06-10T22:49:44.7284597Z         "unit": {
2026-06-10T22:49:44.7284688Z           "complete": true,
2026-06-10T22:49:44.7284775Z           "evidence": [
2026-06-10T22:49:44.7284856Z             {
2026-06-10T22:49:44.7284973Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.7285073Z               "line": 565
2026-06-10T22:49:44.7285154Z             },
2026-06-10T22:49:44.7285243Z             {
2026-06-10T22:49:44.7285347Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.7285448Z               "line": 159
2026-06-10T22:49:44.7285530Z             },
2026-06-10T22:49:44.7285619Z             {
2026-06-10T22:49:44.7285729Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.7285825Z               "line": 231
2026-06-10T22:49:44.7285910Z             }
2026-06-10T22:49:44.7285991Z           ]
2026-06-10T22:49:44.7286078Z         }
2026-06-10T22:49:44.7286163Z       }
2026-06-10T22:49:44.7286248Z     },
2026-06-10T22:49:44.7286339Z     {
2026-06-10T22:49:44.7286454Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-10T22:49:44.7286854Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-10T22:49:44.7286959Z       "requiredStages": [
2026-06-10T22:49:44.7287050Z         "impl",
2026-06-10T22:49:44.7287140Z         "unit"
2026-06-10T22:49:44.7287221Z       ],
2026-06-10T22:49:44.7287313Z       "stages": {
2026-06-10T22:49:44.7287394Z         "doc": {
2026-06-10T22:49:44.7287488Z           "complete": true,
2026-06-10T22:49:44.7287579Z           "evidence": [
2026-06-10T22:49:44.7287676Z             {
2026-06-10T22:49:44.7287784Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T22:49:44.7287873Z               "line": 220
2026-06-10T22:49:44.7287959Z             }
2026-06-10T22:49:44.7288037Z           ]
2026-06-10T22:49:44.7288122Z         },
2026-06-10T22:49:44.7288207Z         "impl": {
2026-06-10T22:49:44.7288312Z           "complete": true,
2026-06-10T22:49:44.7288403Z           "evidence": [
2026-06-10T22:49:44.7288488Z             {
2026-06-10T22:49:44.7288609Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.7288780Z               "line": 302
2026-06-10T22:49:44.7288865Z             },
2026-06-10T22:49:44.7289019Z             {
2026-06-10T22:49:44.7289142Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.7289233Z               "line": 257
2026-06-10T22:49:44.7289319Z             },
2026-06-10T22:49:44.7289404Z             {
2026-06-10T22:49:44.7289524Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.7289714Z               "line": 405
2026-06-10T22:49:44.7289799Z             },
2026-06-10T22:49:44.7289892Z             {
2026-06-10T22:49:44.7290014Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T22:49:44.7290104Z               "line": 77
2026-06-10T22:49:44.7290195Z             }
2026-06-10T22:49:44.7290276Z           ]
2026-06-10T22:49:44.7290360Z         },
2026-06-10T22:49:44.7290440Z         "int": {
2026-06-10T22:49:44.7290540Z           "complete": false,
2026-06-10T22:49:44.7290632Z           "evidence": []
2026-06-10T22:49:44.7290721Z         },
2026-06-10T22:49:44.7290807Z         "unit": {
2026-06-10T22:49:44.7290904Z           "complete": true,
2026-06-10T22:49:44.7290999Z           "evidence": [
2026-06-10T22:49:44.7291084Z             {
2026-06-10T22:49:44.7291209Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.7291299Z               "line": 478
2026-06-10T22:49:44.7291384Z             },
2026-06-10T22:49:44.7291471Z             {
2026-06-10T22:49:44.7291594Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.7291689Z               "line": 516
2026-06-10T22:49:44.7291770Z             },
2026-06-10T22:49:44.7291857Z             {
2026-06-10T22:49:44.7291972Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T22:49:44.7292061Z               "line": 166
2026-06-10T22:49:44.7292144Z             }
2026-06-10T22:49:44.7292224Z           ]
2026-06-10T22:49:44.7292314Z         }
2026-06-10T22:49:44.7292391Z       }
2026-06-10T22:49:44.7292478Z     },
2026-06-10T22:49:44.7292571Z     {
2026-06-10T22:49:44.7292691Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-10T22:49:44.7293213Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-10T22:49:44.7293307Z       "requiredStages": [
2026-06-10T22:49:44.7293403Z         "impl",
2026-06-10T22:49:44.7293489Z         "unit"
2026-06-10T22:49:44.7293574Z       ],
2026-06-10T22:49:44.7293660Z       "stages": {
2026-06-10T22:49:44.7293747Z         "doc": {
2026-06-10T22:49:44.7293837Z           "complete": false,
2026-06-10T22:49:44.7293927Z           "evidence": []
2026-06-10T22:49:44.7294013Z         },
2026-06-10T22:49:44.7294100Z         "impl": {
2026-06-10T22:49:44.7294186Z           "complete": true,
2026-06-10T22:49:44.7294275Z           "evidence": [
2026-06-10T22:49:44.7294357Z             {
2026-06-10T22:49:44.7294480Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-10T22:49:44.7294576Z               "line": 22
2026-06-10T22:49:44.7294662Z             },
2026-06-10T22:49:44.7294748Z             {
2026-06-10T22:49:44.7294862Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.7294952Z               "line": 479
2026-06-10T22:49:44.7295035Z             },
2026-06-10T22:49:44.7295124Z             {
2026-06-10T22:49:44.7295248Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-10T22:49:44.7295340Z               "line": 17
2026-06-10T22:49:44.7295425Z             },
2026-06-10T22:49:44.7295500Z             {
2026-06-10T22:49:44.7295619Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-10T22:49:44.7295705Z               "line": 140
2026-06-10T22:49:44.7295793Z             },
2026-06-10T22:49:44.7295874Z             {
2026-06-10T22:49:44.7296003Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7296099Z               "line": 194
2026-06-10T22:49:44.7296289Z             },
2026-06-10T22:49:44.7296366Z             {
2026-06-10T22:49:44.7296479Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7296570Z               "line": 219
2026-06-10T22:49:44.7296643Z             },
2026-06-10T22:49:44.7296733Z             {
2026-06-10T22:49:44.7296847Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7296939Z               "line": 245
2026-06-10T22:49:44.7297085Z             },
2026-06-10T22:49:44.7297166Z             {
2026-06-10T22:49:44.7297287Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T22:49:44.7297376Z               "line": 124
2026-06-10T22:49:44.7297452Z             },
2026-06-10T22:49:44.7297529Z             {
2026-06-10T22:49:44.7297644Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T22:49:44.7297738Z               "line": 224
2026-06-10T22:49:44.7297815Z             }
2026-06-10T22:49:44.7297907Z           ]
2026-06-10T22:49:44.7297991Z         },
2026-06-10T22:49:44.7298072Z         "int": {
2026-06-10T22:49:44.7298169Z           "complete": false,
2026-06-10T22:49:44.7298259Z           "evidence": []
2026-06-10T22:49:44.7298344Z         },
2026-06-10T22:49:44.7298429Z         "unit": {
2026-06-10T22:49:44.7298524Z           "complete": true,
2026-06-10T22:49:44.7298616Z           "evidence": [
2026-06-10T22:49:44.7298696Z             {
2026-06-10T22:49:44.7298820Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-10T22:49:44.7298897Z               "line": 62
2026-06-10T22:49:44.7299077Z             },
2026-06-10T22:49:44.7299159Z             {
2026-06-10T22:49:44.7299278Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-10T22:49:44.7299363Z               "line": 72
2026-06-10T22:49:44.7299440Z             },
2026-06-10T22:49:44.7299517Z             {
2026-06-10T22:49:44.7299630Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-10T22:49:44.7299716Z               "line": 84
2026-06-10T22:49:44.7299808Z             },
2026-06-10T22:49:44.7299884Z             {
2026-06-10T22:49:44.7300007Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-10T22:49:44.7300089Z               "line": 346
2026-06-10T22:49:44.7300170Z             },
2026-06-10T22:49:44.7300255Z             {
2026-06-10T22:49:44.7300374Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-10T22:49:44.7300452Z               "line": 274
2026-06-10T22:49:44.7300542Z             },
2026-06-10T22:49:44.7300621Z             {
2026-06-10T22:49:44.7300730Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-10T22:49:44.7300826Z               "line": 315
2026-06-10T22:49:44.7300906Z             },
2026-06-10T22:49:44.7300986Z             {
2026-06-10T22:49:44.7301087Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-10T22:49:44.7301187Z               "line": 353
2026-06-10T22:49:44.7301268Z             },
2026-06-10T22:49:44.7301343Z             {
2026-06-10T22:49:44.7301469Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7301549Z               "line": 656
2026-06-10T22:49:44.7301634Z             },
2026-06-10T22:49:44.7301711Z             {
2026-06-10T22:49:44.7301826Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T22:49:44.7301902Z               "line": 397
2026-06-10T22:49:44.7301987Z             },
2026-06-10T22:49:44.7302064Z             {
2026-06-10T22:49:44.7302183Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T22:49:44.7302273Z               "line": 440
2026-06-10T22:49:44.7302345Z             }
2026-06-10T22:49:44.7302441Z           ]
2026-06-10T22:49:44.7302517Z         }
2026-06-10T22:49:44.7302597Z       }
2026-06-10T22:49:44.7302685Z     },
2026-06-10T22:49:44.7302770Z     {
2026-06-10T22:49:44.7302884Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-10T22:49:44.7303090Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-10T22:49:44.7303290Z       "requiredStages": [
2026-06-10T22:49:44.7303372Z         "impl",
2026-06-10T22:49:44.7303456Z         "unit"
2026-06-10T22:49:44.7303541Z       ],
2026-06-10T22:49:44.7303617Z       "stages": {
2026-06-10T22:49:44.7303703Z         "doc": {
2026-06-10T22:49:44.7303792Z           "complete": false,
2026-06-10T22:49:44.7303886Z           "evidence": []
2026-06-10T22:49:44.7303968Z         },
2026-06-10T22:49:44.7304049Z         "impl": {
2026-06-10T22:49:44.7304239Z           "complete": true,
2026-06-10T22:49:44.7304326Z           "evidence": [
2026-06-10T22:49:44.7304412Z             {
2026-06-10T22:49:44.7304520Z               "path": "crates/spt-term/src/reader.rs",
2026-06-10T22:49:44.7304612Z               "line": 169
2026-06-10T22:49:44.7304693Z             }
2026-06-10T22:49:44.7304769Z           ]
2026-06-10T22:49:44.7304859Z         },
2026-06-10T22:49:44.7304941Z         "int": {
2026-06-10T22:49:44.7305031Z           "complete": true,
2026-06-10T22:49:44.7305112Z           "evidence": [
2026-06-10T22:49:44.7305202Z             {
2026-06-10T22:49:44.7305323Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-10T22:49:44.7305417Z               "line": 44
2026-06-10T22:49:44.7305494Z             },
2026-06-10T22:49:44.7305576Z             {
2026-06-10T22:49:44.7307612Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-10T22:49:44.7307722Z               "line": 66
2026-06-10T22:49:44.7307808Z             }
2026-06-10T22:49:44.7307903Z           ]
2026-06-10T22:49:44.7307984Z         },
2026-06-10T22:49:44.7308074Z         "unit": {
2026-06-10T22:49:44.7308167Z           "complete": true,
2026-06-10T22:49:44.7308256Z           "evidence": [
2026-06-10T22:49:44.7308332Z             {
2026-06-10T22:49:44.7308457Z               "path": "crates/spt-term/src/reader.rs",
2026-06-10T22:49:44.7308556Z               "line": 186
2026-06-10T22:49:44.7308632Z             },
2026-06-10T22:49:44.7308714Z             {
2026-06-10T22:49:44.7308815Z               "path": "crates/spt-term/src/reader.rs",
2026-06-10T22:49:44.7308913Z               "line": 238
2026-06-10T22:49:44.7309089Z             },
2026-06-10T22:49:44.7309166Z             {
2026-06-10T22:49:44.7309261Z               "path": "crates/spt-term/src/reader.rs",
2026-06-10T22:49:44.7309351Z               "line": 266
2026-06-10T22:49:44.7309433Z             }
2026-06-10T22:49:44.7309505Z           ]
2026-06-10T22:49:44.7309590Z         }
2026-06-10T22:49:44.7309685Z       }
2026-06-10T22:49:44.7309758Z     },
2026-06-10T22:49:44.7309834Z     {
2026-06-10T22:49:44.7309943Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-10T22:49:44.7310353Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-10T22:49:44.7310444Z       "requiredStages": [
2026-06-10T22:49:44.7310534Z         "impl",
2026-06-10T22:49:44.7310619Z         "unit",
2026-06-10T22:49:44.7310693Z         "int"
2026-06-10T22:49:44.7310792Z       ],
2026-06-10T22:49:44.7310867Z       "stages": {
2026-06-10T22:49:44.7310944Z         "doc": {
2026-06-10T22:49:44.7311036Z           "complete": false,
2026-06-10T22:49:44.7311125Z           "evidence": []
2026-06-10T22:49:44.7311215Z         },
2026-06-10T22:49:44.7311291Z         "impl": {
2026-06-10T22:49:44.7311386Z           "complete": true,
2026-06-10T22:49:44.7311475Z           "evidence": [
2026-06-10T22:49:44.7311556Z             {
2026-06-10T22:49:44.7311685Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7311776Z               "line": 152
2026-06-10T22:49:44.7311851Z             },
2026-06-10T22:49:44.7311923Z             {
2026-06-10T22:49:44.7312043Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7312114Z               "line": 176
2026-06-10T22:49:44.7312194Z             },
2026-06-10T22:49:44.7312271Z             {
2026-06-10T22:49:44.7312381Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7312625Z               "line": 79
2026-06-10T22:49:44.7312701Z             },
2026-06-10T22:49:44.7312781Z             {
2026-06-10T22:49:44.7312891Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T22:49:44.7312982Z               "line": 51
2026-06-10T22:49:44.7313058Z             },
2026-06-10T22:49:44.7313134Z             {
2026-06-10T22:49:44.7313255Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7313435Z               "line": 154
2026-06-10T22:49:44.7313530Z             },
2026-06-10T22:49:44.7313603Z             {
2026-06-10T22:49:44.7313720Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T22:49:44.7313806Z               "line": 27
2026-06-10T22:49:44.7313889Z             },
2026-06-10T22:49:44.7313970Z             {
2026-06-10T22:49:44.7314082Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T22:49:44.7314172Z               "line": 79
2026-06-10T22:49:44.7314249Z             },
2026-06-10T22:49:44.7314338Z             {
2026-06-10T22:49:44.7314446Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T22:49:44.7314538Z               "line": 102
2026-06-10T22:49:44.7314624Z             },
2026-06-10T22:49:44.7314700Z             {
2026-06-10T22:49:44.7314818Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7314906Z               "line": 116
2026-06-10T22:49:44.7314982Z             }
2026-06-10T22:49:44.7315061Z           ]
2026-06-10T22:49:44.7315163Z         },
2026-06-10T22:49:44.7315249Z         "int": {
2026-06-10T22:49:44.7315339Z           "complete": true,
2026-06-10T22:49:44.7315439Z           "evidence": [
2026-06-10T22:49:44.7315520Z             {
2026-06-10T22:49:44.7315644Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-10T22:49:44.7315724Z               "line": 38
2026-06-10T22:49:44.7315811Z             }
2026-06-10T22:49:44.7315902Z           ]
2026-06-10T22:49:44.7315977Z         },
2026-06-10T22:49:44.7316063Z         "unit": {
2026-06-10T22:49:44.7316160Z           "complete": true,
2026-06-10T22:49:44.7316245Z           "evidence": [
2026-06-10T22:49:44.7316321Z             {
2026-06-10T22:49:44.7316432Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7316527Z               "line": 628
2026-06-10T22:49:44.7316601Z             },
2026-06-10T22:49:44.7316678Z             {
2026-06-10T22:49:44.7316782Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7316881Z               "line": 351
2026-06-10T22:49:44.7316951Z             },
2026-06-10T22:49:44.7317037Z             {
2026-06-10T22:49:44.7317152Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T22:49:44.7317238Z               "line": 124
2026-06-10T22:49:44.7317323Z             },
2026-06-10T22:49:44.7317395Z             {
2026-06-10T22:49:44.7317510Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T22:49:44.7317581Z               "line": 143
2026-06-10T22:49:44.7317662Z             },
2026-06-10T22:49:44.7317749Z             {
2026-06-10T22:49:44.7317863Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T22:49:44.7317943Z               "line": 160
2026-06-10T22:49:44.7318020Z             },
2026-06-10T22:49:44.7318107Z             {
2026-06-10T22:49:44.7318220Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T22:49:44.7318306Z               "line": 187
2026-06-10T22:49:44.7318393Z             },
2026-06-10T22:49:44.7318468Z             {
2026-06-10T22:49:44.7318582Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T22:49:44.7318669Z               "line": 206
2026-06-10T22:49:44.7318755Z             },
2026-06-10T22:49:44.7318839Z             {
2026-06-10T22:49:44.7319012Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7319102Z               "line": 229
2026-06-10T22:49:44.7319183Z             }
2026-06-10T22:49:44.7319269Z           ]
2026-06-10T22:49:44.7319342Z         }
2026-06-10T22:49:44.7319431Z       }
2026-06-10T22:49:44.7319626Z     },
2026-06-10T22:49:44.7319698Z     {
2026-06-10T22:49:44.7319811Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-10T22:49:44.7320422Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-10T22:49:44.7320761Z       "requiredStages": [
2026-06-10T22:49:44.7320851Z         "impl",
2026-06-10T22:49:44.7320923Z         "unit"
2026-06-10T22:49:44.7321009Z       ],
2026-06-10T22:49:44.7321094Z       "stages": {
2026-06-10T22:49:44.7321180Z         "doc": {
2026-06-10T22:49:44.7321272Z           "complete": false,
2026-06-10T22:49:44.7321366Z           "evidence": []
2026-06-10T22:49:44.7321442Z         },
2026-06-10T22:49:44.7321528Z         "impl": {
2026-06-10T22:49:44.7321615Z           "complete": true,
2026-06-10T22:49:44.7321699Z           "evidence": [
2026-06-10T22:49:44.7321794Z             {
2026-06-10T22:49:44.7321909Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7322007Z               "line": 327
2026-06-10T22:49:44.7322088Z             },
2026-06-10T22:49:44.7322168Z             {
2026-06-10T22:49:44.7322284Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7322374Z               "line": 530
2026-06-10T22:49:44.7322459Z             }
2026-06-10T22:49:44.7322536Z           ]
2026-06-10T22:49:44.7322618Z         },
2026-06-10T22:49:44.7322688Z         "int": {
2026-06-10T22:49:44.7322783Z           "complete": false,
2026-06-10T22:49:44.7322870Z           "evidence": []
2026-06-10T22:49:44.7322946Z         },
2026-06-10T22:49:44.7323036Z         "unit": {
2026-06-10T22:49:44.7323122Z           "complete": true,
2026-06-10T22:49:44.7323213Z           "evidence": [
2026-06-10T22:49:44.7323289Z             {
2026-06-10T22:49:44.7323412Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-10T22:49:44.7323510Z               "line": 161
2026-06-10T22:49:44.7323589Z             }
2026-06-10T22:49:44.7323675Z           ]
2026-06-10T22:49:44.7323751Z         }
2026-06-10T22:49:44.7323829Z       }
2026-06-10T22:49:44.7323904Z     },
2026-06-10T22:49:44.7323985Z     {
2026-06-10T22:49:44.7324081Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-10T22:49:44.7324257Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-10T22:49:44.7324357Z       "requiredStages": [
2026-06-10T22:49:44.7324434Z         "impl",
2026-06-10T22:49:44.7324525Z         "unit"
2026-06-10T22:49:44.7324605Z       ],
2026-06-10T22:49:44.7324680Z       "stages": {
2026-06-10T22:49:44.7324756Z         "doc": {
2026-06-10T22:49:44.7324847Z           "complete": false,
2026-06-10T22:49:44.7324941Z           "evidence": []
2026-06-10T22:49:44.7325011Z         },
2026-06-10T22:49:44.7325103Z         "impl": {
2026-06-10T22:49:44.7325193Z           "complete": true,
2026-06-10T22:49:44.7325293Z           "evidence": [
2026-06-10T22:49:44.7325369Z             {
2026-06-10T22:49:44.7325470Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7325565Z               "line": 40
2026-06-10T22:49:44.7325640Z             },
2026-06-10T22:49:44.7325718Z             {
2026-06-10T22:49:44.7325823Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7325913Z               "line": 100
2026-06-10T22:49:44.7325994Z             },
2026-06-10T22:49:44.7326066Z             {
2026-06-10T22:49:44.7326170Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7326261Z               "line": 215
2026-06-10T22:49:44.7326333Z             },
2026-06-10T22:49:44.7326410Z             {
2026-06-10T22:49:44.7326518Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7326614Z               "line": 314
2026-06-10T22:49:44.7326701Z             }
2026-06-10T22:49:44.7326786Z           ]
2026-06-10T22:49:44.7326866Z         },
2026-06-10T22:49:44.7327030Z         "int": {
2026-06-10T22:49:44.7327125Z           "complete": false,
2026-06-10T22:49:44.7327209Z           "evidence": []
2026-06-10T22:49:44.7327294Z         },
2026-06-10T22:49:44.7327380Z         "unit": {
2026-06-10T22:49:44.7327474Z           "complete": true,
2026-06-10T22:49:44.7327559Z           "evidence": [
2026-06-10T22:49:44.7327646Z             {
2026-06-10T22:49:44.7327756Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7327921Z               "line": 352
2026-06-10T22:49:44.7328009Z             },
2026-06-10T22:49:44.7328089Z             {
2026-06-10T22:49:44.7328198Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7328290Z               "line": 409
2026-06-10T22:49:44.7328371Z             },
2026-06-10T22:49:44.7328456Z             {
2026-06-10T22:49:44.7328560Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7328652Z               "line": 458
2026-06-10T22:49:44.7328732Z             },
2026-06-10T22:49:44.7328827Z             {
2026-06-10T22:49:44.7328933Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7329128Z               "line": 479
2026-06-10T22:49:44.7329214Z             }
2026-06-10T22:49:44.7329301Z           ]
2026-06-10T22:49:44.7329385Z         }
2026-06-10T22:49:44.7329471Z       }
2026-06-10T22:49:44.7329950Z     },
2026-06-10T22:49:44.7330024Z     {
2026-06-10T22:49:44.7330152Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-10T22:49:44.7330286Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-10T22:49:44.7330381Z       "requiredStages": [
2026-06-10T22:49:44.7330471Z         "impl",
2026-06-10T22:49:44.7330548Z         "unit"
2026-06-10T22:49:44.7330625Z       ],
2026-06-10T22:49:44.7330705Z       "stages": {
2026-06-10T22:49:44.7330791Z         "doc": {
2026-06-10T22:49:44.7330888Z           "complete": false,
2026-06-10T22:49:44.7330978Z           "evidence": []
2026-06-10T22:49:44.7331063Z         },
2026-06-10T22:49:44.7331154Z         "impl": {
2026-06-10T22:49:44.7331245Z           "complete": true,
2026-06-10T22:49:44.7331330Z           "evidence": [
2026-06-10T22:49:44.7331421Z             {
2026-06-10T22:49:44.7331536Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7331626Z               "line": 113
2026-06-10T22:49:44.7331711Z             },
2026-06-10T22:49:44.7331793Z             {
2026-06-10T22:49:44.7331903Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7332002Z               "line": 208
2026-06-10T22:49:44.7332088Z             }
2026-06-10T22:49:44.7332176Z           ]
2026-06-10T22:49:44.7332254Z         },
2026-06-10T22:49:44.7332335Z         "int": {
2026-06-10T22:49:44.7332426Z           "complete": false,
2026-06-10T22:49:44.7332516Z           "evidence": []
2026-06-10T22:49:44.7332595Z         },
2026-06-10T22:49:44.7332685Z         "unit": {
2026-06-10T22:49:44.7332781Z           "complete": true,
2026-06-10T22:49:44.7332863Z           "evidence": [
2026-06-10T22:49:44.7332948Z             {
2026-06-10T22:49:44.7333048Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7333134Z               "line": 373
2026-06-10T22:49:44.7333215Z             },
2026-06-10T22:49:44.7333301Z             {
2026-06-10T22:49:44.7333421Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7333501Z               "line": 436
2026-06-10T22:49:44.7333591Z             }
2026-06-10T22:49:44.7333682Z           ]
2026-06-10T22:49:44.7333764Z         }
2026-06-10T22:49:44.7333850Z       }
2026-06-10T22:49:44.7333935Z     },
2026-06-10T22:49:44.7334016Z     {
2026-06-10T22:49:44.7334126Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-10T22:49:44.7335293Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-10T22:49:44.7335534Z       "requiredStages": [
2026-06-10T22:49:44.7335624Z         "impl",
2026-06-10T22:49:44.7335721Z         "unit"
2026-06-10T22:49:44.7335806Z       ],
2026-06-10T22:49:44.7335895Z       "stages": {
2026-06-10T22:49:44.7335992Z         "doc": {
2026-06-10T22:49:44.7336087Z           "complete": true,
2026-06-10T22:49:44.7336177Z           "evidence": [
2026-06-10T22:49:44.7336359Z             {
2026-06-10T22:49:44.7336478Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T22:49:44.7336569Z               "line": 206
2026-06-10T22:49:44.7336650Z             }
2026-06-10T22:49:44.7336740Z           ]
2026-06-10T22:49:44.7336821Z         },
2026-06-10T22:49:44.7336912Z         "impl": {
2026-06-10T22:49:44.7337003Z           "complete": true,
2026-06-10T22:49:44.7337097Z           "evidence": [
2026-06-10T22:49:44.7337183Z             {
2026-06-10T22:49:44.7337304Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7337407Z               "line": 593
2026-06-10T22:49:44.7337488Z             },
2026-06-10T22:49:44.7337576Z             {
2026-06-10T22:49:44.7337699Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7337793Z               "line": 685
2026-06-10T22:49:44.7337883Z             },
2026-06-10T22:49:44.7337974Z             {
2026-06-10T22:49:44.7338100Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.7338201Z               "line": 183
2026-06-10T22:49:44.7338287Z             }
2026-06-10T22:49:44.7338373Z           ]
2026-06-10T22:49:44.7338458Z         },
2026-06-10T22:49:44.7338544Z         "int": {
2026-06-10T22:49:44.7338649Z           "complete": false,
2026-06-10T22:49:44.7338734Z           "evidence": []
2026-06-10T22:49:44.7338815Z         },
2026-06-10T22:49:44.7338912Z         "unit": {
2026-06-10T22:49:44.7339126Z           "complete": true,
2026-06-10T22:49:44.7339212Z           "evidence": [
2026-06-10T22:49:44.7339306Z             {
2026-06-10T22:49:44.7339431Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7339522Z               "line": 734
2026-06-10T22:49:44.7339607Z             },
2026-06-10T22:49:44.7339688Z             {
2026-06-10T22:49:44.7339813Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-10T22:49:44.7339908Z               "line": 44
2026-06-10T22:49:44.7339994Z             },
2026-06-10T22:49:44.7340094Z             {
2026-06-10T22:49:44.7340204Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-10T22:49:44.7340293Z               "line": 57
2026-06-10T22:49:44.7340380Z             },
2026-06-10T22:49:44.7340462Z             {
2026-06-10T22:49:44.7340594Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-10T22:49:44.7340688Z               "line": 54
2026-06-10T22:49:44.7340775Z             }
2026-06-10T22:49:44.7340856Z           ]
2026-06-10T22:49:44.7340946Z         }
2026-06-10T22:49:44.7341032Z       }
2026-06-10T22:49:44.7341123Z     },
2026-06-10T22:49:44.7341199Z     {
2026-06-10T22:49:44.7341327Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-10T22:49:44.7341528Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-10T22:49:44.7341623Z       "requiredStages": [
2026-06-10T22:49:44.7341709Z         "impl",
2026-06-10T22:49:44.7341791Z         "unit"
2026-06-10T22:49:44.7341905Z       ],
2026-06-10T22:49:44.7341995Z       "stages": {
2026-06-10T22:49:44.7342072Z         "doc": {
2026-06-10T22:49:44.7342166Z           "complete": false,
2026-06-10T22:49:44.7342243Z           "evidence": []
2026-06-10T22:49:44.7342329Z         },
2026-06-10T22:49:44.7342406Z         "impl": {
2026-06-10T22:49:44.7342500Z           "complete": true,
2026-06-10T22:49:44.7342586Z           "evidence": [
2026-06-10T22:49:44.7342663Z             {
2026-06-10T22:49:44.7342778Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T22:49:44.7343000Z               "line": 26
2026-06-10T22:49:44.7343090Z             },
2026-06-10T22:49:44.7343169Z             {
2026-06-10T22:49:44.7343283Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T22:49:44.7343375Z               "line": 135
2026-06-10T22:49:44.7343456Z             },
2026-06-10T22:49:44.7343546Z             {
2026-06-10T22:49:44.7343666Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-10T22:49:44.7343856Z               "line": 26
2026-06-10T22:49:44.7343942Z             },
2026-06-10T22:49:44.7344024Z             {
2026-06-10T22:49:44.7344147Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-10T22:49:44.7344232Z               "line": 237
2026-06-10T22:49:44.7344320Z             }
2026-06-10T22:49:44.7344400Z           ]
2026-06-10T22:49:44.7344490Z         },
2026-06-10T22:49:44.7344576Z         "int": {
2026-06-10T22:49:44.7344672Z           "complete": false,
2026-06-10T22:49:44.7344763Z           "evidence": []
2026-06-10T22:49:44.7344857Z         },
2026-06-10T22:49:44.7344945Z         "unit": {
2026-06-10T22:49:44.7345038Z           "complete": true,
2026-06-10T22:49:44.7345139Z           "evidence": [
2026-06-10T22:49:44.7345221Z             {
2026-06-10T22:49:44.7345349Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T22:49:44.7345444Z               "line": 161
2026-06-10T22:49:44.7345526Z             },
2026-06-10T22:49:44.7345612Z             {
2026-06-10T22:49:44.7345730Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T22:49:44.7345829Z               "line": 170
2026-06-10T22:49:44.7345906Z             },
2026-06-10T22:49:44.7345995Z             {
2026-06-10T22:49:44.7346117Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T22:49:44.7346203Z               "line": 179
2026-06-10T22:49:44.7346290Z             },
2026-06-10T22:49:44.7346375Z             {
2026-06-10T22:49:44.7346489Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T22:49:44.7346576Z               "line": 190
2026-06-10T22:49:44.7346676Z             },
2026-06-10T22:49:44.7346766Z             {
2026-06-10T22:49:44.7346872Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T22:49:44.7346967Z               "line": 199
2026-06-10T22:49:44.7347047Z             },
2026-06-10T22:49:44.7347143Z             {
2026-06-10T22:49:44.7347253Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T22:49:44.7347343Z               "line": 216
2026-06-10T22:49:44.7347453Z             },
2026-06-10T22:49:44.7347539Z             {
2026-06-10T22:49:44.7347653Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T22:49:44.7347739Z               "line": 242
2026-06-10T22:49:44.7347826Z             },
2026-06-10T22:49:44.7347911Z             {
2026-06-10T22:49:44.7348025Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T22:49:44.7348117Z               "line": 257
2026-06-10T22:49:44.7348202Z             },
2026-06-10T22:49:44.7348292Z             {
2026-06-10T22:49:44.7348410Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T22:49:44.7348510Z               "line": 244
2026-06-10T22:49:44.7348590Z             },
2026-06-10T22:49:44.7348684Z             {
2026-06-10T22:49:44.7348813Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-10T22:49:44.7348900Z               "line": 265
2026-06-10T22:49:44.7349065Z             },
2026-06-10T22:49:44.7349153Z             {
2026-06-10T22:49:44.7349285Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-10T22:49:44.7349376Z               "line": 293
2026-06-10T22:49:44.7349462Z             },
2026-06-10T22:49:44.7349543Z             {
2026-06-10T22:49:44.7349661Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-10T22:49:44.7349753Z               "line": 317
2026-06-10T22:49:44.7349839Z             },
2026-06-10T22:49:44.7349924Z             {
2026-06-10T22:49:44.7350044Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-10T22:49:44.7350134Z               "line": 327
2026-06-10T22:49:44.7350325Z             },
2026-06-10T22:49:44.7350411Z             {
2026-06-10T22:49:44.7350534Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T22:49:44.7350620Z               "line": 540
2026-06-10T22:49:44.7350707Z             }
2026-06-10T22:49:44.7350797Z           ]
2026-06-10T22:49:44.7350878Z         }
2026-06-10T22:49:44.7350969Z       }
2026-06-10T22:49:44.7351055Z     },
2026-06-10T22:49:44.7351244Z     {
2026-06-10T22:49:44.7351363Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-10T22:49:44.7351516Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-10T22:49:44.7351615Z       "requiredStages": [
2026-06-10T22:49:44.7351698Z         "impl",
2026-06-10T22:49:44.7351793Z         "unit"
2026-06-10T22:49:44.7351873Z       ],
2026-06-10T22:49:44.7351965Z       "stages": {
2026-06-10T22:49:44.7352051Z         "doc": {
2026-06-10T22:49:44.7352155Z           "complete": false,
2026-06-10T22:49:44.7352245Z           "evidence": []
2026-06-10T22:49:44.7352342Z         },
2026-06-10T22:49:44.7352426Z         "impl": {
2026-06-10T22:49:44.7352521Z           "complete": true,
2026-06-10T22:49:44.7352613Z           "evidence": [
2026-06-10T22:49:44.7352699Z             {
2026-06-10T22:49:44.7352813Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T22:49:44.7352904Z               "line": 25
2026-06-10T22:49:44.7352990Z             },
2026-06-10T22:49:44.7353084Z             {
2026-06-10T22:49:44.7353195Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T22:49:44.7353291Z               "line": 26
2026-06-10T22:49:44.7353375Z             },
2026-06-10T22:49:44.7353465Z             {
2026-06-10T22:49:44.7353579Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T22:49:44.7353669Z               "line": 159
2026-06-10T22:49:44.7353758Z             }
2026-06-10T22:49:44.7353834Z           ]
2026-06-10T22:49:44.7353925Z         },
2026-06-10T22:49:44.7354003Z         "int": {
2026-06-10T22:49:44.7354096Z           "complete": false,
2026-06-10T22:49:44.7354187Z           "evidence": []
2026-06-10T22:49:44.7354260Z         },
2026-06-10T22:49:44.7354346Z         "unit": {
2026-06-10T22:49:44.7354440Z           "complete": true,
2026-06-10T22:49:44.7354526Z           "evidence": [
2026-06-10T22:49:44.7354612Z             {
2026-06-10T22:49:44.7354726Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T22:49:44.7354822Z               "line": 184
2026-06-10T22:49:44.7354899Z             },
2026-06-10T22:49:44.7354970Z             {
2026-06-10T22:49:44.7355079Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T22:49:44.7355175Z               "line": 236
2026-06-10T22:49:44.7355251Z             },
2026-06-10T22:49:44.7355351Z             {
2026-06-10T22:49:44.7355466Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T22:49:44.7355557Z               "line": 186
2026-06-10T22:49:44.7355632Z             }
2026-06-10T22:49:44.7355713Z           ]
2026-06-10T22:49:44.7355805Z         }
2026-06-10T22:49:44.7355877Z       }
2026-06-10T22:49:44.7355965Z     },
2026-06-10T22:49:44.7356047Z     {
2026-06-10T22:49:44.7356139Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-10T22:49:44.7356299Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-10T22:49:44.7356393Z       "requiredStages": [
2026-06-10T22:49:44.7356485Z         "impl",
2026-06-10T22:49:44.7356560Z         "unit"
2026-06-10T22:49:44.7356654Z       ],
2026-06-10T22:49:44.7356745Z       "stages": {
2026-06-10T22:49:44.7356817Z         "doc": {
2026-06-10T22:49:44.7356907Z           "complete": false,
2026-06-10T22:49:44.7356997Z           "evidence": []
2026-06-10T22:49:44.7357088Z         },
2026-06-10T22:49:44.7357170Z         "impl": {
2026-06-10T22:49:44.7357264Z           "complete": true,
2026-06-10T22:49:44.7357364Z           "evidence": [
2026-06-10T22:49:44.7357437Z             {
2026-06-10T22:49:44.7357556Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T22:49:44.7357718Z               "line": 48
2026-06-10T22:49:44.7357804Z             },
2026-06-10T22:49:44.7357880Z             {
2026-06-10T22:49:44.7357998Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T22:49:44.7358091Z               "line": 55
2026-06-10T22:49:44.7358175Z             },
2026-06-10T22:49:44.7358261Z             {
2026-06-10T22:49:44.7358372Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T22:49:44.7358532Z               "line": 74
2026-06-10T22:49:44.7358609Z             },
2026-06-10T22:49:44.7358696Z             {
2026-06-10T22:49:44.7358814Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T22:49:44.7358899Z               "line": 91
2026-06-10T22:49:44.7359056Z             }
2026-06-10T22:49:44.7359140Z           ]
2026-06-10T22:49:44.7359235Z         },
2026-06-10T22:49:44.7359321Z         "int": {
2026-06-10T22:49:44.7359422Z           "complete": false,
2026-06-10T22:49:44.7359517Z           "evidence": []
2026-06-10T22:49:44.7359612Z         },
2026-06-10T22:49:44.7359698Z         "unit": {
2026-06-10T22:49:44.7359789Z           "complete": true,
2026-06-10T22:49:44.7359883Z           "evidence": [
2026-06-10T22:49:44.7359965Z             {
2026-06-10T22:49:44.7360080Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T22:49:44.7360174Z               "line": 149
2026-06-10T22:49:44.7360261Z             },
2026-06-10T22:49:44.7360351Z             {
2026-06-10T22:49:44.7360470Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T22:49:44.7360565Z               "line": 166
2026-06-10T22:49:44.7360647Z             },
2026-06-10T22:49:44.7360737Z             {
2026-06-10T22:49:44.7360846Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T22:49:44.7360934Z               "line": 176
2026-06-10T22:49:44.7361023Z             },
2026-06-10T22:49:44.7361109Z             {
2026-06-10T22:49:44.7361219Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T22:49:44.7361315Z               "line": 194
2026-06-10T22:49:44.7361409Z             },
2026-06-10T22:49:44.7361490Z             {
2026-06-10T22:49:44.7361601Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T22:49:44.7361691Z               "line": 207
2026-06-10T22:49:44.7361775Z             }
2026-06-10T22:49:44.7361866Z           ]
2026-06-10T22:49:44.7361948Z         }
2026-06-10T22:49:44.7362043Z       }
2026-06-10T22:49:44.7362128Z     },
2026-06-10T22:49:44.7362224Z     {
2026-06-10T22:49:44.7362339Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-10T22:49:44.7362520Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-10T22:49:44.7362625Z       "requiredStages": [
2026-06-10T22:49:44.7362710Z         "impl",
2026-06-10T22:49:44.7362806Z         "unit"
2026-06-10T22:49:44.7362892Z       ],
2026-06-10T22:49:44.7362982Z       "stages": {
2026-06-10T22:49:44.7363067Z         "doc": {
2026-06-10T22:49:44.7363159Z           "complete": false,
2026-06-10T22:49:44.7363264Z           "evidence": []
2026-06-10T22:49:44.7363345Z         },
2026-06-10T22:49:44.7363440Z         "impl": {
2026-06-10T22:49:44.7363531Z           "complete": true,
2026-06-10T22:49:44.7363621Z           "evidence": [
2026-06-10T22:49:44.7363716Z             {
2026-06-10T22:49:44.7363837Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7363935Z               "line": 416
2026-06-10T22:49:44.7364030Z             },
2026-06-10T22:49:44.7364121Z             {
2026-06-10T22:49:44.7364234Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T22:49:44.7364328Z               "line": 26
2026-06-10T22:49:44.7364413Z             }
2026-06-10T22:49:44.7364505Z           ]
2026-06-10T22:49:44.7364591Z         },
2026-06-10T22:49:44.7364680Z         "int": {
2026-06-10T22:49:44.7364777Z           "complete": false,
2026-06-10T22:49:44.7364872Z           "evidence": []
2026-06-10T22:49:44.7364953Z         },
2026-06-10T22:49:44.7365048Z         "unit": {
2026-06-10T22:49:44.7365244Z           "complete": true,
2026-06-10T22:49:44.7365338Z           "evidence": [
2026-06-10T22:49:44.7365421Z             {
2026-06-10T22:49:44.7365539Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T22:49:44.7365634Z               "line": 150
2026-06-10T22:49:44.7365721Z             },
2026-06-10T22:49:44.7365807Z             {
2026-06-10T22:49:44.7365921Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T22:49:44.7366127Z               "line": 208
2026-06-10T22:49:44.7366216Z             }
2026-06-10T22:49:44.7366302Z           ]
2026-06-10T22:49:44.7366394Z         }
2026-06-10T22:49:44.7366474Z       }
2026-06-10T22:49:44.7366560Z     },
2026-06-10T22:49:44.7366646Z     {
2026-06-10T22:49:44.7366766Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-10T22:49:44.7368063Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-10T22:49:44.7368182Z       "requiredStages": [
2026-06-10T22:49:44.7368268Z         "doc",
2026-06-10T22:49:44.7368355Z         "impl",
2026-06-10T22:49:44.7368445Z         "unit"
2026-06-10T22:49:44.7368540Z       ],
2026-06-10T22:49:44.7368627Z       "stages": {
2026-06-10T22:49:44.7368716Z         "doc": {
2026-06-10T22:49:44.7368811Z           "complete": true,
2026-06-10T22:49:44.7368903Z           "evidence": [
2026-06-10T22:49:44.7369054Z             {
2026-06-10T22:49:44.7369169Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T22:49:44.7369261Z               "line": 214
2026-06-10T22:49:44.7369351Z             }
2026-06-10T22:49:44.7369440Z           ]
2026-06-10T22:49:44.7369520Z         },
2026-06-10T22:49:44.7369612Z         "impl": {
2026-06-10T22:49:44.7369710Z           "complete": true,
2026-06-10T22:49:44.7369804Z           "evidence": [
2026-06-10T22:49:44.7369890Z             {
2026-06-10T22:49:44.7370006Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7370095Z               "line": 54
2026-06-10T22:49:44.7370177Z             },
2026-06-10T22:49:44.7370263Z             {
2026-06-10T22:49:44.7370377Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7370472Z               "line": 511
2026-06-10T22:49:44.7370555Z             },
2026-06-10T22:49:44.7370630Z             {
2026-06-10T22:49:44.7370753Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7370830Z               "line": 36
2026-06-10T22:49:44.7370911Z             },
2026-06-10T22:49:44.7370987Z             {
2026-06-10T22:49:44.7371111Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7371203Z               "line": 59
2026-06-10T22:49:44.7371292Z             },
2026-06-10T22:49:44.7371373Z             {
2026-06-10T22:49:44.7371489Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7371583Z               "line": 83
2026-06-10T22:49:44.7371655Z             },
2026-06-10T22:49:44.7371736Z             {
2026-06-10T22:49:44.7371852Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7371940Z               "line": 140
2026-06-10T22:49:44.7372027Z             },
2026-06-10T22:49:44.7372099Z             {
2026-06-10T22:49:44.7372218Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7372312Z               "line": 159
2026-06-10T22:49:44.7372397Z             },
2026-06-10T22:49:44.7375142Z             {
2026-06-10T22:49:44.7375307Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7375404Z               "line": 384
2026-06-10T22:49:44.7375489Z             },
2026-06-10T22:49:44.7375589Z             {
2026-06-10T22:49:44.7375719Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7375957Z               "line": 526
2026-06-10T22:49:44.7376052Z             },
2026-06-10T22:49:44.7376133Z             {
2026-06-10T22:49:44.7376256Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7376343Z               "line": 572
2026-06-10T22:49:44.7376428Z             },
2026-06-10T22:49:44.7376523Z             {
2026-06-10T22:49:44.7376634Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T22:49:44.7376828Z               "line": 145
2026-06-10T22:49:44.7376911Z             },
2026-06-10T22:49:44.7376992Z             {
2026-06-10T22:49:44.7377095Z               "path": "crates/spt/src/main.rs",
2026-06-10T22:49:44.7377187Z               "line": 39
2026-06-10T22:49:44.7377264Z             }
2026-06-10T22:49:44.7377345Z           ]
2026-06-10T22:49:44.7377424Z         },
2026-06-10T22:49:44.7377500Z         "int": {
2026-06-10T22:49:44.7377595Z           "complete": false,
2026-06-10T22:49:44.7377690Z           "evidence": []
2026-06-10T22:49:44.7377779Z         },
2026-06-10T22:49:44.7377870Z         "unit": {
2026-06-10T22:49:44.7377966Z           "complete": true,
2026-06-10T22:49:44.7378056Z           "evidence": [
2026-06-10T22:49:44.7378132Z             {
2026-06-10T22:49:44.7378257Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7378348Z               "line": 785
2026-06-10T22:49:44.7378437Z             },
2026-06-10T22:49:44.7378514Z             {
2026-06-10T22:49:44.7378642Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7378737Z               "line": 826
2026-06-10T22:49:44.7378809Z             },
2026-06-10T22:49:44.7378901Z             {
2026-06-10T22:49:44.7379085Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7379177Z               "line": 900
2026-06-10T22:49:44.7379281Z             }
2026-06-10T22:49:44.7379367Z           ]
2026-06-10T22:49:44.7379448Z         }
2026-06-10T22:49:44.7379540Z       }
2026-06-10T22:49:44.7379624Z     },
2026-06-10T22:49:44.7379710Z     {
2026-06-10T22:49:44.7379831Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-10T22:49:44.7381595Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-10T22:49:44.7381720Z       "requiredStages": [
2026-06-10T22:49:44.7381810Z         "impl",
2026-06-10T22:49:44.7381891Z         "unit"
2026-06-10T22:49:44.7381981Z       ],
2026-06-10T22:49:44.7382073Z       "stages": {
2026-06-10T22:49:44.7382167Z         "doc": {
2026-06-10T22:49:44.7382262Z           "complete": false,
2026-06-10T22:49:44.7382354Z           "evidence": []
2026-06-10T22:49:44.7382440Z         },
2026-06-10T22:49:44.7382524Z         "impl": {
2026-06-10T22:49:44.7382625Z           "complete": true,
2026-06-10T22:49:44.7382717Z           "evidence": [
2026-06-10T22:49:44.7382801Z             {
2026-06-10T22:49:44.7382929Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7383020Z               "line": 31
2026-06-10T22:49:44.7383112Z             }
2026-06-10T22:49:44.7383192Z           ]
2026-06-10T22:49:44.7383282Z         },
2026-06-10T22:49:44.7383369Z         "int": {
2026-06-10T22:49:44.7383459Z           "complete": false,
2026-06-10T22:49:44.7383554Z           "evidence": []
2026-06-10T22:49:44.7383635Z         },
2026-06-10T22:49:44.7383726Z         "unit": {
2026-06-10T22:49:44.7383821Z           "complete": true,
2026-06-10T22:49:44.7383916Z           "evidence": [
2026-06-10T22:49:44.7384112Z             {
2026-06-10T22:49:44.7384230Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7384323Z               "line": 181
2026-06-10T22:49:44.7384407Z             }
2026-06-10T22:49:44.7384493Z           ]
2026-06-10T22:49:44.7384575Z         }
2026-06-10T22:49:44.7384661Z       }
2026-06-10T22:49:44.7384755Z     },
2026-06-10T22:49:44.7384832Z     {
2026-06-10T22:49:44.7384962Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-10T22:49:44.7385221Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-10T22:49:44.7385326Z       "requiredStages": [
2026-06-10T22:49:44.7385410Z         "impl",
2026-06-10T22:49:44.7385500Z         "unit"
2026-06-10T22:49:44.7385592Z       ],
2026-06-10T22:49:44.7385678Z       "stages": {
2026-06-10T22:49:44.7385777Z         "doc": {
2026-06-10T22:49:44.7385867Z           "complete": false,
2026-06-10T22:49:44.7385959Z           "evidence": []
2026-06-10T22:49:44.7386044Z         },
2026-06-10T22:49:44.7386139Z         "impl": {
2026-06-10T22:49:44.7386240Z           "complete": true,
2026-06-10T22:49:44.7386331Z           "evidence": [
2026-06-10T22:49:44.7386416Z             {
2026-06-10T22:49:44.7386537Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7386627Z               "line": 49
2026-06-10T22:49:44.7386712Z             },
2026-06-10T22:49:44.7386798Z             {
2026-06-10T22:49:44.7386913Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7387008Z               "line": 81
2026-06-10T22:49:44.7387098Z             }
2026-06-10T22:49:44.7387181Z           ]
2026-06-10T22:49:44.7387270Z         },
2026-06-10T22:49:44.7387351Z         "int": {
2026-06-10T22:49:44.7387447Z           "complete": false,
2026-06-10T22:49:44.7387542Z           "evidence": []
2026-06-10T22:49:44.7387622Z         },
2026-06-10T22:49:44.7387713Z         "unit": {
2026-06-10T22:49:44.7387810Z           "complete": true,
2026-06-10T22:49:44.7387905Z           "evidence": [
2026-06-10T22:49:44.7387993Z             {
2026-06-10T22:49:44.7388117Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7388212Z               "line": 156
2026-06-10T22:49:44.7388297Z             },
2026-06-10T22:49:44.7388382Z             {
2026-06-10T22:49:44.7388492Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7388588Z               "line": 173
2026-06-10T22:49:44.7388677Z             },
2026-06-10T22:49:44.7388764Z             {
2026-06-10T22:49:44.7388883Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7389059Z               "line": 196
2026-06-10T22:49:44.7389151Z             }
2026-06-10T22:49:44.7389232Z           ]
2026-06-10T22:49:44.7389321Z         }
2026-06-10T22:49:44.7389403Z       }
2026-06-10T22:49:44.7389494Z     },
2026-06-10T22:49:44.7389575Z     {
2026-06-10T22:49:44.7389698Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-10T22:49:44.7389879Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-10T22:49:44.7389984Z       "requiredStages": [
2026-06-10T22:49:44.7390066Z         "impl",
2026-06-10T22:49:44.7390152Z         "unit"
2026-06-10T22:49:44.7390237Z       ],
2026-06-10T22:49:44.7390323Z       "stages": {
2026-06-10T22:49:44.7390396Z         "doc": {
2026-06-10T22:49:44.7390490Z           "complete": false,
2026-06-10T22:49:44.7390579Z           "evidence": []
2026-06-10T22:49:44.7390680Z         },
2026-06-10T22:49:44.7390770Z         "impl": {
2026-06-10T22:49:44.7390858Z           "complete": true,
2026-06-10T22:49:44.7390949Z           "evidence": [
2026-06-10T22:49:44.7391025Z             {
2026-06-10T22:49:44.7391150Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7391239Z               "line": 120
2026-06-10T22:49:44.7391331Z             }
2026-06-10T22:49:44.7391402Z           ]
2026-06-10T22:49:44.7391493Z         },
2026-06-10T22:49:44.7391583Z         "int": {
2026-06-10T22:49:44.7391670Z           "complete": false,
2026-06-10T22:49:44.7391864Z           "evidence": []
2026-06-10T22:49:44.7391941Z         },
2026-06-10T22:49:44.7392032Z         "unit": {
2026-06-10T22:49:44.7392127Z           "complete": true,
2026-06-10T22:49:44.7392222Z           "evidence": [
2026-06-10T22:49:44.7392314Z             {
2026-06-10T22:49:44.7392422Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7392517Z               "line": 212
2026-06-10T22:49:44.7392790Z             },
2026-06-10T22:49:44.7392871Z             {
2026-06-10T22:49:44.7392987Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7393080Z               "line": 221
2026-06-10T22:49:44.7393166Z             },
2026-06-10T22:49:44.7393248Z             {
2026-06-10T22:49:44.7393357Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7393451Z               "line": 229
2026-06-10T22:49:44.7393537Z             },
2026-06-10T22:49:44.7393633Z             {
2026-06-10T22:49:44.7393747Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7393842Z               "line": 239
2026-06-10T22:49:44.7393914Z             },
2026-06-10T22:49:44.7394000Z             {
2026-06-10T22:49:44.7394114Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T22:49:44.7394205Z               "line": 249
2026-06-10T22:49:44.7394295Z             }
2026-06-10T22:49:44.7394376Z           ]
2026-06-10T22:49:44.7394466Z         }
2026-06-10T22:49:44.7394549Z       }
2026-06-10T22:49:44.7394634Z     },
2026-06-10T22:49:44.7394719Z     {
2026-06-10T22:49:44.7394835Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-10T22:49:44.7394996Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-10T22:49:44.7395092Z       "requiredStages": [
2026-06-10T22:49:44.7395179Z         "impl",
2026-06-10T22:49:44.7395264Z         "unit"
2026-06-10T22:49:44.7395349Z       ],
2026-06-10T22:49:44.7395435Z       "stages": {
2026-06-10T22:49:44.7395527Z         "doc": {
2026-06-10T22:49:44.7395625Z           "complete": false,
2026-06-10T22:49:44.7395715Z           "evidence": []
2026-06-10T22:49:44.7395805Z         },
2026-06-10T22:49:44.7395891Z         "impl": {
2026-06-10T22:49:44.7395985Z           "complete": true,
2026-06-10T22:49:44.7396079Z           "evidence": [
2026-06-10T22:49:44.7396166Z             {
2026-06-10T22:49:44.7396280Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T22:49:44.7396375Z               "line": 14
2026-06-10T22:49:44.7396467Z             },
2026-06-10T22:49:44.7396548Z             {
2026-06-10T22:49:44.7396662Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T22:49:44.7396748Z               "line": 62
2026-06-10T22:49:44.7396839Z             }
2026-06-10T22:49:44.7396924Z           ]
2026-06-10T22:49:44.7397009Z         },
2026-06-10T22:49:44.7397097Z         "int": {
2026-06-10T22:49:44.7397191Z           "complete": false,
2026-06-10T22:49:44.7397282Z           "evidence": []
2026-06-10T22:49:44.7397367Z         },
2026-06-10T22:49:44.7397463Z         "unit": {
2026-06-10T22:49:44.7397558Z           "complete": true,
2026-06-10T22:49:44.7397648Z           "evidence": [
2026-06-10T22:49:44.7397741Z             {
2026-06-10T22:49:44.7397844Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T22:49:44.7397940Z               "line": 160
2026-06-10T22:49:44.7398021Z             },
2026-06-10T22:49:44.7398112Z             {
2026-06-10T22:49:44.7398230Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T22:49:44.7398322Z               "line": 197
2026-06-10T22:49:44.7398408Z             },
2026-06-10T22:49:44.7398493Z             {
2026-06-10T22:49:44.7398606Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T22:49:44.7398692Z               "line": 219
2026-06-10T22:49:44.7398782Z             }
2026-06-10T22:49:44.7398866Z           ]
2026-06-10T22:49:44.7399043Z         }
2026-06-10T22:49:44.7399129Z       }
2026-06-10T22:49:44.7399214Z     },
2026-06-10T22:49:44.7399304Z     {
2026-06-10T22:49:44.7399524Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-10T22:49:44.7400835Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-10T22:49:44.7401060Z       "requiredStages": [],
2026-06-10T22:49:44.7401149Z       "stages": {
2026-06-10T22:49:44.7401235Z         "doc": {
2026-06-10T22:49:44.7401325Z           "complete": true,
2026-06-10T22:49:44.7401423Z           "evidence": [
2026-06-10T22:49:44.7401509Z             {
2026-06-10T22:49:44.7401624Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T22:49:44.7401720Z               "line": 165
2026-06-10T22:49:44.7401804Z             }
2026-06-10T22:49:44.7401900Z           ]
2026-06-10T22:49:44.7401986Z         },
2026-06-10T22:49:44.7402072Z         "impl": {
2026-06-10T22:49:44.7402171Z           "complete": false,
2026-06-10T22:49:44.7402263Z           "evidence": []
2026-06-10T22:49:44.7402354Z         },
2026-06-10T22:49:44.7402438Z         "int": {
2026-06-10T22:49:44.7402540Z           "complete": false,
2026-06-10T22:49:44.7402625Z           "evidence": []
2026-06-10T22:49:44.7402725Z         },
2026-06-10T22:49:44.7402815Z         "unit": {
2026-06-10T22:49:44.7402912Z           "complete": false,
2026-06-10T22:49:44.7403002Z           "evidence": []
2026-06-10T22:49:44.7403087Z         }
2026-06-10T22:49:44.7403174Z       }
2026-06-10T22:49:44.7403260Z     },
2026-06-10T22:49:44.7403350Z     {
2026-06-10T22:49:44.7403470Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-10T22:49:44.7403674Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-10T22:49:44.7403775Z       "requiredStages": [
2026-06-10T22:49:44.7403876Z         "impl",
2026-06-10T22:49:44.7403959Z         "unit"
2026-06-10T22:49:44.7404045Z       ],
2026-06-10T22:49:44.7404131Z       "stages": {
2026-06-10T22:49:44.7404217Z         "doc": {
2026-06-10T22:49:44.7404312Z           "complete": false,
2026-06-10T22:49:44.7404402Z           "evidence": []
2026-06-10T22:49:44.7404489Z         },
2026-06-10T22:49:44.7404575Z         "impl": {
2026-06-10T22:49:44.7404664Z           "complete": true,
2026-06-10T22:49:44.7404770Z           "evidence": [
2026-06-10T22:49:44.7404856Z             {
2026-06-10T22:49:44.7404974Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T22:49:44.7405070Z               "line": 76
2026-06-10T22:49:44.7405152Z             },
2026-06-10T22:49:44.7405242Z             {
2026-06-10T22:49:44.7405351Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T22:49:44.7405453Z               "line": 167
2026-06-10T22:49:44.7405537Z             },
2026-06-10T22:49:44.7405628Z             {
2026-06-10T22:49:44.7405748Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T22:49:44.7405838Z               "line": 233
2026-06-10T22:49:44.7405928Z             },
2026-06-10T22:49:44.7406009Z             {
2026-06-10T22:49:44.7406125Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T22:49:44.7406219Z               "line": 272
2026-06-10T22:49:44.7406304Z             }
2026-06-10T22:49:44.7406390Z           ]
2026-06-10T22:49:44.7406484Z         },
2026-06-10T22:49:44.7406574Z         "int": {
2026-06-10T22:49:44.7406664Z           "complete": false,
2026-06-10T22:49:44.7406760Z           "evidence": []
2026-06-10T22:49:44.7406845Z         },
2026-06-10T22:49:44.7406931Z         "unit": {
2026-06-10T22:49:44.7407027Z           "complete": true,
2026-06-10T22:49:44.7407117Z           "evidence": [
2026-06-10T22:49:44.7407207Z             {
2026-06-10T22:49:44.7407317Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T22:49:44.7407408Z               "line": 321
2026-06-10T22:49:44.7407579Z             },
2026-06-10T22:49:44.7407666Z             {
2026-06-10T22:49:44.7407780Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T22:49:44.7407870Z               "line": 329
2026-06-10T22:49:44.7407957Z             },
2026-06-10T22:49:44.7408042Z             {
2026-06-10T22:49:44.7408151Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T22:49:44.7408247Z               "line": 356
2026-06-10T22:49:44.7408409Z             },
2026-06-10T22:49:44.7408495Z             {
2026-06-10T22:49:44.7408606Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T22:49:44.7408700Z               "line": 395
2026-06-10T22:49:44.7408781Z             },
2026-06-10T22:49:44.7408872Z             {
2026-06-10T22:49:44.7409067Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T22:49:44.7409156Z               "line": 406
2026-06-10T22:49:44.7409247Z             },
2026-06-10T22:49:44.7409332Z             {
2026-06-10T22:49:44.7409450Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T22:49:44.7409846Z               "line": 418
2026-06-10T22:49:44.7409937Z             },
2026-06-10T22:49:44.7410028Z             {
2026-06-10T22:49:44.7410145Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T22:49:44.7410238Z               "line": 442
2026-06-10T22:49:44.7410323Z             }
2026-06-10T22:49:44.7410408Z           ]
2026-06-10T22:49:44.7410495Z         }
2026-06-10T22:49:44.7410590Z       }
2026-06-10T22:49:44.7410680Z     },
2026-06-10T22:49:44.7410761Z     {
2026-06-10T22:49:44.7410872Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-10T22:49:44.7411014Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-10T22:49:44.7411114Z       "requiredStages": [
2026-06-10T22:49:44.7411201Z         "impl",
2026-06-10T22:49:44.7411286Z         "int"
2026-06-10T22:49:44.7411377Z       ],
2026-06-10T22:49:44.7411458Z       "stages": {
2026-06-10T22:49:44.7411544Z         "doc": {
2026-06-10T22:49:44.7411643Z           "complete": false,
2026-06-10T22:49:44.7411737Z           "evidence": []
2026-06-10T22:49:44.7411819Z         },
2026-06-10T22:49:44.7411904Z         "impl": {
2026-06-10T22:49:44.7412002Z           "complete": true,
2026-06-10T22:49:44.7412097Z           "evidence": [
2026-06-10T22:49:44.7412179Z             {
2026-06-10T22:49:44.7412298Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7412388Z               "line": 22
2026-06-10T22:49:44.7412480Z             }
2026-06-10T22:49:44.7412565Z           ]
2026-06-10T22:49:44.7412660Z         },
2026-06-10T22:49:44.7412741Z         "int": {
2026-06-10T22:49:44.7412837Z           "complete": true,
2026-06-10T22:49:44.7412923Z           "evidence": [
2026-06-10T22:49:44.7413008Z             {
2026-06-10T22:49:44.7413133Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-10T22:49:44.7413223Z               "line": 18
2026-06-10T22:49:44.7413309Z             }
2026-06-10T22:49:44.7413395Z           ]
2026-06-10T22:49:44.7413491Z         },
2026-06-10T22:49:44.7413572Z         "unit": {
2026-06-10T22:49:44.7413667Z           "complete": false,
2026-06-10T22:49:44.7413758Z           "evidence": []
2026-06-10T22:49:44.7413838Z         }
2026-06-10T22:49:44.7413925Z       }
2026-06-10T22:49:44.7414010Z     },
2026-06-10T22:49:44.7414097Z     {
2026-06-10T22:49:44.7414205Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-10T22:49:44.7414392Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-10T22:49:44.7414501Z       "requiredStages": [
2026-06-10T22:49:44.7414581Z         "impl",
2026-06-10T22:49:44.7414672Z         "unit"
2026-06-10T22:49:44.7414754Z       ],
2026-06-10T22:49:44.7414849Z       "stages": {
2026-06-10T22:49:44.7414929Z         "doc": {
2026-06-10T22:49:44.7415025Z           "complete": false,
2026-06-10T22:49:44.7415115Z           "evidence": []
2026-06-10T22:49:44.7415201Z         },
2026-06-10T22:49:44.7415286Z         "impl": {
2026-06-10T22:49:44.7415502Z           "complete": true,
2026-06-10T22:49:44.7415597Z           "evidence": [
2026-06-10T22:49:44.7415683Z             {
2026-06-10T22:49:44.7415812Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7415907Z               "line": 415
2026-06-10T22:49:44.7415979Z             },
2026-06-10T22:49:44.7416064Z             {
2026-06-10T22:49:44.7416169Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T22:49:44.7416356Z               "line": 27
2026-06-10T22:49:44.7416440Z             }
2026-06-10T22:49:44.7416521Z           ]
2026-06-10T22:49:44.7416604Z         },
2026-06-10T22:49:44.7416680Z         "int": {
2026-06-10T22:49:44.7416779Z           "complete": false,
2026-06-10T22:49:44.7416864Z           "evidence": []
2026-06-10T22:49:44.7416945Z         },
2026-06-10T22:49:44.7417030Z         "unit": {
2026-06-10T22:49:44.7417129Z           "complete": true,
2026-06-10T22:49:44.7417214Z           "evidence": [
2026-06-10T22:49:44.7417296Z             {
2026-06-10T22:49:44.7417419Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7417500Z               "line": 940
2026-06-10T22:49:44.7417591Z             },
2026-06-10T22:49:44.7417673Z             {
2026-06-10T22:49:44.7417796Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T22:49:44.7417892Z               "line": 181
2026-06-10T22:49:44.7417973Z             }
2026-06-10T22:49:44.7418049Z           ]
2026-06-10T22:49:44.7418135Z         }
2026-06-10T22:49:44.7418212Z       }
2026-06-10T22:49:44.7418297Z     },
2026-06-10T22:49:44.7418378Z     {
2026-06-10T22:49:44.7418492Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-10T22:49:44.7418664Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-10T22:49:44.7418769Z       "requiredStages": [
2026-06-10T22:49:44.7418851Z         "impl",
2026-06-10T22:49:44.7418936Z         "unit"
2026-06-10T22:49:44.7419108Z       ],
2026-06-10T22:49:44.7419205Z       "stages": {
2026-06-10T22:49:44.7419302Z         "doc": {
2026-06-10T22:49:44.7419403Z           "complete": false,
2026-06-10T22:49:44.7419505Z           "evidence": []
2026-06-10T22:49:44.7419585Z         },
2026-06-10T22:49:44.7419674Z         "impl": {
2026-06-10T22:49:44.7419774Z           "complete": true,
2026-06-10T22:49:44.7419870Z           "evidence": [
2026-06-10T22:49:44.7419962Z             {
2026-06-10T22:49:44.7420086Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7420187Z               "line": 73
2026-06-10T22:49:44.7420268Z             },
2026-06-10T22:49:44.7420363Z             {
2026-06-10T22:49:44.7420483Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7420578Z               "line": 840
2026-06-10T22:49:44.7420678Z             },
2026-06-10T22:49:44.7420759Z             {
2026-06-10T22:49:44.7420874Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T22:49:44.7420968Z               "line": 20
2026-06-10T22:49:44.7421060Z             },
2026-06-10T22:49:44.7421150Z             {
2026-06-10T22:49:44.7421274Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T22:49:44.7421369Z               "line": 100
2026-06-10T22:49:44.7421447Z             },
2026-06-10T22:49:44.7421541Z             {
2026-06-10T22:49:44.7421655Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T22:49:44.7421757Z               "line": 443
2026-06-10T22:49:44.7421832Z             },
2026-06-10T22:49:44.7421937Z             {
2026-06-10T22:49:44.7422062Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-10T22:49:44.7422142Z               "line": 68
2026-06-10T22:49:44.7422241Z             },
2026-06-10T22:49:44.7422321Z             {
2026-06-10T22:49:44.7422445Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-10T22:49:44.7422539Z               "line": 80
2026-06-10T22:49:44.7422624Z             }
2026-06-10T22:49:44.7422716Z           ]
2026-06-10T22:49:44.7422807Z         },
2026-06-10T22:49:44.7422906Z         "int": {
2026-06-10T22:49:44.7423112Z           "complete": true,
2026-06-10T22:49:44.7423211Z           "evidence": [
2026-06-10T22:49:44.7423297Z             {
2026-06-10T22:49:44.7423417Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-10T22:49:44.7423521Z               "line": 44
2026-06-10T22:49:44.7423612Z             }
2026-06-10T22:49:44.7423693Z           ]
2026-06-10T22:49:44.7423779Z         },
2026-06-10T22:49:44.7423965Z         "unit": {
2026-06-10T22:49:44.7424065Z           "complete": true,
2026-06-10T22:49:44.7424165Z           "evidence": [
2026-06-10T22:49:44.7424251Z             {
2026-06-10T22:49:44.7424380Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7424475Z               "line": 1029
2026-06-10T22:49:44.7424556Z             },
2026-06-10T22:49:44.7424647Z             {
2026-06-10T22:49:44.7424765Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.7424866Z               "line": 1045
2026-06-10T22:49:44.7424962Z             },
2026-06-10T22:49:44.7425056Z             {
2026-06-10T22:49:44.7425179Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7425275Z               "line": 1069
2026-06-10T22:49:44.7425376Z             },
2026-06-10T22:49:44.7425460Z             {
2026-06-10T22:49:44.7425576Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T22:49:44.7425680Z               "line": 152
2026-06-10T22:49:44.7425780Z             },
2026-06-10T22:49:44.7425871Z             {
2026-06-10T22:49:44.7425976Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T22:49:44.7426076Z               "line": 175
2026-06-10T22:49:44.7426166Z             },
2026-06-10T22:49:44.7426263Z             {
2026-06-10T22:49:44.7426377Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T22:49:44.7426471Z               "line": 186
2026-06-10T22:49:44.7426563Z             },
2026-06-10T22:49:44.7426644Z             {
2026-06-10T22:49:44.7426762Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T22:49:44.7426868Z               "line": 202
2026-06-10T22:49:44.7426949Z             },
2026-06-10T22:49:44.7427044Z             {
2026-06-10T22:49:44.7427154Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T22:49:44.7427254Z               "line": 216
2026-06-10T22:49:44.7427334Z             },
2026-06-10T22:49:44.7427429Z             {
2026-06-10T22:49:44.7427548Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-10T22:49:44.7427646Z               "line": 137
2026-06-10T22:49:44.7427736Z             },
2026-06-10T22:49:44.7427822Z             {
2026-06-10T22:49:44.7427938Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7428032Z               "line": 5547
2026-06-10T22:49:44.7428128Z             },
2026-06-10T22:49:44.7428214Z             {
2026-06-10T22:49:44.7428332Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-10T22:49:44.7428428Z               "line": 30
2026-06-10T22:49:44.7428529Z             },
2026-06-10T22:49:44.7428614Z             {
2026-06-10T22:49:44.7428728Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-10T22:49:44.7428825Z               "line": 73
2026-06-10T22:49:44.7428915Z             }
2026-06-10T22:49:44.7429087Z           ]
2026-06-10T22:49:44.7429177Z         }
2026-06-10T22:49:44.7429267Z       }
2026-06-10T22:49:44.7429358Z     },
2026-06-10T22:49:44.7429435Z     {
2026-06-10T22:49:44.7429557Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-10T22:49:44.7429821Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-10T22:49:44.7429921Z       "requiredStages": [
2026-06-10T22:49:44.7430012Z         "impl",
2026-06-10T22:49:44.7430098Z         "unit"
2026-06-10T22:49:44.7430187Z       ],
2026-06-10T22:49:44.7430268Z       "stages": {
2026-06-10T22:49:44.7430358Z         "doc": {
2026-06-10T22:49:44.7430449Z           "complete": true,
2026-06-10T22:49:44.7430542Z           "evidence": [
2026-06-10T22:49:44.7430762Z             {
2026-06-10T22:49:44.7430871Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T22:49:44.7430961Z               "line": 133
2026-06-10T22:49:44.7431048Z             }
2026-06-10T22:49:44.7431134Z           ]
2026-06-10T22:49:44.7431223Z         },
2026-06-10T22:49:44.7431310Z         "impl": {
2026-06-10T22:49:44.7431410Z           "complete": true,
2026-06-10T22:49:44.7431500Z           "evidence": [
2026-06-10T22:49:44.7431682Z             {
2026-06-10T22:49:44.7431806Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T22:49:44.7431896Z               "line": 65
2026-06-10T22:49:44.7431983Z             },
2026-06-10T22:49:44.7432072Z             {
2026-06-10T22:49:44.7432177Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T22:49:44.7432273Z               "line": 17
2026-06-10T22:49:44.7432364Z             },
2026-06-10T22:49:44.7432453Z             {
2026-06-10T22:49:44.7432569Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.7432674Z               "line": 217
2026-06-10T22:49:44.7432763Z             },
2026-06-10T22:49:44.7432857Z             {
2026-06-10T22:49:44.7432978Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.7433071Z               "line": 317
2026-06-10T22:49:44.7433160Z             },
2026-06-10T22:49:44.7433251Z             {
2026-06-10T22:49:44.7433367Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.7433461Z               "line": 32
2026-06-10T22:49:44.7433556Z             },
2026-06-10T22:49:44.7433643Z             {
2026-06-10T22:49:44.7433747Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7433838Z               "line": 4418
2026-06-10T22:49:44.7433925Z             },
2026-06-10T22:49:44.7434015Z             {
2026-06-10T22:49:44.7434119Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7434216Z               "line": 4686
2026-06-10T22:49:44.7434306Z             }
2026-06-10T22:49:44.7434396Z           ]
2026-06-10T22:49:44.7434491Z         },
2026-06-10T22:49:44.7434587Z         "int": {
2026-06-10T22:49:44.7434687Z           "complete": false,
2026-06-10T22:49:44.7434777Z           "evidence": []
2026-06-10T22:49:44.7434865Z         },
2026-06-10T22:49:44.7434949Z         "unit": {
2026-06-10T22:49:44.7435045Z           "complete": true,
2026-06-10T22:49:44.7435136Z           "evidence": [
2026-06-10T22:49:44.7435227Z             {
2026-06-10T22:49:44.7435344Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T22:49:44.7435436Z               "line": 94
2026-06-10T22:49:44.7435527Z             },
2026-06-10T22:49:44.7435616Z             {
2026-06-10T22:49:44.7435734Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T22:49:44.7435826Z               "line": 111
2026-06-10T22:49:44.7435917Z             },
2026-06-10T22:49:44.7436002Z             {
2026-06-10T22:49:44.7436111Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T22:49:44.7436213Z               "line": 124
2026-06-10T22:49:44.7436302Z             },
2026-06-10T22:49:44.7436397Z             {
2026-06-10T22:49:44.7436503Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T22:49:44.7436599Z               "line": 134
2026-06-10T22:49:44.7436688Z             },
2026-06-10T22:49:44.7436775Z             {
2026-06-10T22:49:44.7436884Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T22:49:44.7436974Z               "line": 144
2026-06-10T22:49:44.7437060Z             },
2026-06-10T22:49:44.7437147Z             {
2026-06-10T22:49:44.7437266Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T22:49:44.7437361Z               "line": 156
2026-06-10T22:49:44.7437447Z             },
2026-06-10T22:49:44.7437523Z             {
2026-06-10T22:49:44.7437651Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7437748Z               "line": 714
2026-06-10T22:49:44.7437842Z             }
2026-06-10T22:49:44.7437927Z           ]
2026-06-10T22:49:44.7438022Z         }
2026-06-10T22:49:44.7438188Z       }
2026-06-10T22:49:44.7438278Z     },
2026-06-10T22:49:44.7438359Z     {
2026-06-10T22:49:44.7438469Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-10T22:49:44.7438606Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-10T22:49:44.7438698Z       "requiredStages": [
2026-06-10T22:49:44.7438793Z         "impl",
2026-06-10T22:49:44.7438878Z         "unit"
2026-06-10T22:49:44.7439112Z       ],
2026-06-10T22:49:44.7439308Z       "stages": {
2026-06-10T22:49:44.7439399Z         "doc": {
2026-06-10T22:49:44.7439489Z           "complete": false,
2026-06-10T22:49:44.7439589Z           "evidence": []
2026-06-10T22:49:44.7439675Z         },
2026-06-10T22:49:44.7439770Z         "impl": {
2026-06-10T22:49:44.7439865Z           "complete": true,
2026-06-10T22:49:44.7439957Z           "evidence": [
2026-06-10T22:49:44.7440048Z             {
2026-06-10T22:49:44.7440166Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7440262Z               "line": 128
2026-06-10T22:49:44.7440353Z             }
2026-06-10T22:49:44.7440446Z           ]
2026-06-10T22:49:44.7440538Z         },
2026-06-10T22:49:44.7440630Z         "int": {
2026-06-10T22:49:44.7440733Z           "complete": false,
2026-06-10T22:49:44.7440823Z           "evidence": []
2026-06-10T22:49:44.7440914Z         },
2026-06-10T22:49:44.7441004Z         "unit": {
2026-06-10T22:49:44.7441092Z           "complete": true,
2026-06-10T22:49:44.7441187Z           "evidence": [
2026-06-10T22:49:44.7441278Z             {
2026-06-10T22:49:44.7441403Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7441488Z               "line": 205
2026-06-10T22:49:44.7441579Z             }
2026-06-10T22:49:44.7441674Z           ]
2026-06-10T22:49:44.7441759Z         }
2026-06-10T22:49:44.7441850Z       }
2026-06-10T22:49:44.7441937Z     },
2026-06-10T22:49:44.7442028Z     {
2026-06-10T22:49:44.7442146Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-10T22:49:44.7442304Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-10T22:49:44.7442408Z       "requiredStages": [
2026-06-10T22:49:44.7442504Z         "impl",
2026-06-10T22:49:44.7444665Z         "unit"
2026-06-10T22:49:44.7444781Z       ],
2026-06-10T22:49:44.7444884Z       "stages": {
2026-06-10T22:49:44.7444970Z         "doc": {
2026-06-10T22:49:44.7445080Z           "complete": false,
2026-06-10T22:49:44.7445175Z           "evidence": []
2026-06-10T22:49:44.7445266Z         },
2026-06-10T22:49:44.7445366Z         "impl": {
2026-06-10T22:49:44.7445453Z           "complete": true,
2026-06-10T22:49:44.7445547Z           "evidence": [
2026-06-10T22:49:44.7445638Z             {
2026-06-10T22:49:44.7445764Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7445861Z               "line": 246
2026-06-10T22:49:44.7445948Z             },
2026-06-10T22:49:44.7446039Z             {
2026-06-10T22:49:44.7446153Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7446252Z               "line": 257
2026-06-10T22:49:44.7446343Z             },
2026-06-10T22:49:44.7446439Z             {
2026-06-10T22:49:44.7446548Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7446633Z               "line": 275
2026-06-10T22:49:44.7446720Z             }
2026-06-10T22:49:44.7446810Z           ]
2026-06-10T22:49:44.7446900Z         },
2026-06-10T22:49:44.7446986Z         "int": {
2026-06-10T22:49:44.7447087Z           "complete": false,
2026-06-10T22:49:44.7447187Z           "evidence": []
2026-06-10T22:49:44.7447272Z         },
2026-06-10T22:49:44.7447364Z         "unit": {
2026-06-10T22:49:44.7447454Z           "complete": true,
2026-06-10T22:49:44.7447544Z           "evidence": [
2026-06-10T22:49:44.7447635Z             {
2026-06-10T22:49:44.7447754Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7447840Z               "line": 299
2026-06-10T22:49:44.7447926Z             },
2026-06-10T22:49:44.7448017Z             {
2026-06-10T22:49:44.7448126Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7448356Z               "line": 320
2026-06-10T22:49:44.7448450Z             },
2026-06-10T22:49:44.7448535Z             {
2026-06-10T22:49:44.7448659Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7448757Z               "line": 547
2026-06-10T22:49:44.7448856Z             },
2026-06-10T22:49:44.7449029Z             {
2026-06-10T22:49:44.7449152Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7449353Z               "line": 558
2026-06-10T22:49:44.7449443Z             },
2026-06-10T22:49:44.7449534Z             {
2026-06-10T22:49:44.7449645Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7449739Z               "line": 571
2026-06-10T22:49:44.7449829Z             }
2026-06-10T22:49:44.7449921Z           ]
2026-06-10T22:49:44.7450016Z         }
2026-06-10T22:49:44.7450106Z       }
2026-06-10T22:49:44.7450197Z     },
2026-06-10T22:49:44.7450283Z     {
2026-06-10T22:49:44.7450412Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-10T22:49:44.7450998Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-10T22:49:44.7451108Z       "requiredStages": [
2026-06-10T22:49:44.7451204Z         "impl",
2026-06-10T22:49:44.7451294Z         "unit"
2026-06-10T22:49:44.7451402Z       ],
2026-06-10T22:49:44.7451488Z       "stages": {
2026-06-10T22:49:44.7451583Z         "doc": {
2026-06-10T22:49:44.7451681Z           "complete": false,
2026-06-10T22:49:44.7451776Z           "evidence": []
2026-06-10T22:49:44.7451868Z         },
2026-06-10T22:49:44.7451958Z         "impl": {
2026-06-10T22:49:44.7452057Z           "complete": true,
2026-06-10T22:49:44.7452154Z           "evidence": [
2026-06-10T22:49:44.7452244Z             {
2026-06-10T22:49:44.7452377Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7452478Z               "line": 714
2026-06-10T22:49:44.7452568Z             }
2026-06-10T22:49:44.7452663Z           ]
2026-06-10T22:49:44.7452759Z         },
2026-06-10T22:49:44.7452855Z         "int": {
2026-06-10T22:49:44.7452954Z           "complete": false,
2026-06-10T22:49:44.7453049Z           "evidence": []
2026-06-10T22:49:44.7453141Z         },
2026-06-10T22:49:44.7453235Z         "unit": {
2026-06-10T22:49:44.7453336Z           "complete": true,
2026-06-10T22:49:44.7453432Z           "evidence": [
2026-06-10T22:49:44.7453527Z             {
2026-06-10T22:49:44.7453655Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7453752Z               "line": 828
2026-06-10T22:49:44.7453841Z             }
2026-06-10T22:49:44.7453936Z           ]
2026-06-10T22:49:44.7454021Z         }
2026-06-10T22:49:44.7454117Z       }
2026-06-10T22:49:44.7454200Z     },
2026-06-10T22:49:44.7454291Z     {
2026-06-10T22:49:44.7454405Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-10T22:49:44.7454629Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-10T22:49:44.7454735Z       "requiredStages": [
2026-06-10T22:49:44.7454826Z         "impl",
2026-06-10T22:49:44.7454915Z         "unit"
2026-06-10T22:49:44.7455002Z       ],
2026-06-10T22:49:44.7455097Z       "stages": {
2026-06-10T22:49:44.7455187Z         "doc": {
2026-06-10T22:49:44.7455282Z           "complete": false,
2026-06-10T22:49:44.7455398Z           "evidence": []
2026-06-10T22:49:44.7455488Z         },
2026-06-10T22:49:44.7455583Z         "impl": {
2026-06-10T22:49:44.7455680Z           "complete": true,
2026-06-10T22:49:44.7455783Z           "evidence": [
2026-06-10T22:49:44.7455878Z             {
2026-06-10T22:49:44.7455994Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T22:49:44.7456093Z               "line": 14
2026-06-10T22:49:44.7456188Z             },
2026-06-10T22:49:44.7456280Z             {
2026-06-10T22:49:44.7456394Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T22:49:44.7456595Z               "line": 411
2026-06-10T22:49:44.7456685Z             }
2026-06-10T22:49:44.7456774Z           ]
2026-06-10T22:49:44.7456864Z         },
2026-06-10T22:49:44.7456956Z         "int": {
2026-06-10T22:49:44.7457056Z           "complete": false,
2026-06-10T22:49:44.7457146Z           "evidence": []
2026-06-10T22:49:44.7457237Z         },
2026-06-10T22:49:44.7457328Z         "unit": {
2026-06-10T22:49:44.7457508Z           "complete": true,
2026-06-10T22:49:44.7457605Z           "evidence": [
2026-06-10T22:49:44.7457690Z             {
2026-06-10T22:49:44.7457813Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T22:49:44.7457905Z               "line": 130
2026-06-10T22:49:44.7458005Z             },
2026-06-10T22:49:44.7458094Z             {
2026-06-10T22:49:44.7458205Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T22:49:44.7458300Z               "line": 138
2026-06-10T22:49:44.7458391Z             },
2026-06-10T22:49:44.7458491Z             {
2026-06-10T22:49:44.7458601Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T22:49:44.7458705Z               "line": 146
2026-06-10T22:49:44.7458791Z             },
2026-06-10T22:49:44.7458879Z             {
2026-06-10T22:49:44.7459081Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T22:49:44.7459176Z               "line": 154
2026-06-10T22:49:44.7459261Z             },
2026-06-10T22:49:44.7459360Z             {
2026-06-10T22:49:44.7459464Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T22:49:44.7459556Z               "line": 162
2026-06-10T22:49:44.7459641Z             },
2026-06-10T22:49:44.7459736Z             {
2026-06-10T22:49:44.7459842Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T22:49:44.7459937Z               "line": 170
2026-06-10T22:49:44.7460013Z             }
2026-06-10T22:49:44.7460113Z           ]
2026-06-10T22:49:44.7460205Z         }
2026-06-10T22:49:44.7460294Z       }
2026-06-10T22:49:44.7460384Z     },
2026-06-10T22:49:44.7460481Z     {
2026-06-10T22:49:44.7460600Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-10T22:49:44.7461501Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-10T22:49:44.7461620Z       "requiredStages": [
2026-06-10T22:49:44.7461716Z         "impl",
2026-06-10T22:49:44.7461807Z         "unit"
2026-06-10T22:49:44.7461901Z       ],
2026-06-10T22:49:44.7461991Z       "stages": {
2026-06-10T22:49:44.7462086Z         "doc": {
2026-06-10T22:49:44.7462185Z           "complete": false,
2026-06-10T22:49:44.7462284Z           "evidence": []
2026-06-10T22:49:44.7462375Z         },
2026-06-10T22:49:44.7462466Z         "impl": {
2026-06-10T22:49:44.7462565Z           "complete": true,
2026-06-10T22:49:44.7462665Z           "evidence": [
2026-06-10T22:49:44.7462762Z             {
2026-06-10T22:49:44.7462918Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T22:49:44.7463015Z               "line": 34
2026-06-10T22:49:44.7463110Z             }
2026-06-10T22:49:44.7463195Z           ]
2026-06-10T22:49:44.7463290Z         },
2026-06-10T22:49:44.7463386Z         "int": {
2026-06-10T22:49:44.7463486Z           "complete": false,
2026-06-10T22:49:44.7463581Z           "evidence": []
2026-06-10T22:49:44.7463677Z         },
2026-06-10T22:49:44.7463767Z         "unit": {
2026-06-10T22:49:44.7463867Z           "complete": true,
2026-06-10T22:49:44.7463969Z           "evidence": [
2026-06-10T22:49:44.7464054Z             {
2026-06-10T22:49:44.7464201Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T22:49:44.7464302Z               "line": 188
2026-06-10T22:49:44.7464397Z             },
2026-06-10T22:49:44.7464486Z             {
2026-06-10T22:49:44.7464620Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T22:49:44.7464846Z               "line": 200
2026-06-10T22:49:44.7464937Z             },
2026-06-10T22:49:44.7465028Z             {
2026-06-10T22:49:44.7465170Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T22:49:44.7465266Z               "line": 211
2026-06-10T22:49:44.7465356Z             },
2026-06-10T22:49:44.7465442Z             {
2026-06-10T22:49:44.7465581Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T22:49:44.7465771Z               "line": 253
2026-06-10T22:49:44.7465867Z             },
2026-06-10T22:49:44.7465953Z             {
2026-06-10T22:49:44.7466086Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T22:49:44.7466186Z               "line": 277
2026-06-10T22:49:44.7466278Z             },
2026-06-10T22:49:44.7466368Z             {
2026-06-10T22:49:44.7466501Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T22:49:44.7466602Z               "line": 300
2026-06-10T22:49:44.7466701Z             },
2026-06-10T22:49:44.7466787Z             {
2026-06-10T22:49:44.7466926Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T22:49:44.7467015Z               "line": 316
2026-06-10T22:49:44.7467107Z             }
2026-06-10T22:49:44.7467198Z           ]
2026-06-10T22:49:44.7467292Z         }
2026-06-10T22:49:44.7467382Z       }
2026-06-10T22:49:44.7467468Z     },
2026-06-10T22:49:44.7467568Z     {
2026-06-10T22:49:44.7467687Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-10T22:49:44.7468207Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-10T22:49:44.7468311Z       "requiredStages": [
2026-06-10T22:49:44.7468402Z         "impl",
2026-06-10T22:49:44.7468494Z         "unit"
2026-06-10T22:49:44.7468583Z       ],
2026-06-10T22:49:44.7468678Z       "stages": {
2026-06-10T22:49:44.7468770Z         "doc": {
2026-06-10T22:49:44.7468874Z           "complete": false,
2026-06-10T22:49:44.7469056Z           "evidence": []
2026-06-10T22:49:44.7469147Z         },
2026-06-10T22:49:44.7469241Z         "impl": {
2026-06-10T22:49:44.7469337Z           "complete": true,
2026-06-10T22:49:44.7469434Z           "evidence": [
2026-06-10T22:49:44.7469522Z             {
2026-06-10T22:49:44.7469650Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7469760Z               "line": 29
2026-06-10T22:49:44.7469849Z             },
2026-06-10T22:49:44.7469939Z             {
2026-06-10T22:49:44.7470053Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7470150Z               "line": 174
2026-06-10T22:49:44.7470240Z             },
2026-06-10T22:49:44.7470330Z             {
2026-06-10T22:49:44.7470445Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7470545Z               "line": 194
2026-06-10T22:49:44.7470639Z             },
2026-06-10T22:49:44.7470731Z             {
2026-06-10T22:49:44.7470840Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7470935Z               "line": 222
2026-06-10T22:49:44.7471027Z             }
2026-06-10T22:49:44.7471112Z           ]
2026-06-10T22:49:44.7471198Z         },
2026-06-10T22:49:44.7471279Z         "int": {
2026-06-10T22:49:44.7471375Z           "complete": false,
2026-06-10T22:49:44.7471479Z           "evidence": []
2026-06-10T22:49:44.7471565Z         },
2026-06-10T22:49:44.7471662Z         "unit": {
2026-06-10T22:49:44.7471756Z           "complete": true,
2026-06-10T22:49:44.7471851Z           "evidence": [
2026-06-10T22:49:44.7471938Z             {
2026-06-10T22:49:44.7472052Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7472151Z               "line": 329
2026-06-10T22:49:44.7472238Z             },
2026-06-10T22:49:44.7472329Z             {
2026-06-10T22:49:44.7472442Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7472632Z               "line": 344
2026-06-10T22:49:44.7472726Z             },
2026-06-10T22:49:44.7472820Z             {
2026-06-10T22:49:44.7472940Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7473031Z               "line": 417
2026-06-10T22:49:44.7473130Z             },
2026-06-10T22:49:44.7473216Z             {
2026-06-10T22:49:44.7473327Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7473526Z               "line": 433
2026-06-10T22:49:44.7473603Z             },
2026-06-10T22:49:44.7473689Z             {
2026-06-10T22:49:44.7473807Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7473904Z               "line": 492
2026-06-10T22:49:44.7473994Z             },
2026-06-10T22:49:44.7474070Z             {
2026-06-10T22:49:44.7474189Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7474275Z               "line": 506
2026-06-10T22:49:44.7474365Z             },
2026-06-10T22:49:44.7474456Z             {
2026-06-10T22:49:44.7474571Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7474666Z               "line": 517
2026-06-10T22:49:44.7474756Z             },
2026-06-10T22:49:44.7474848Z             {
2026-06-10T22:49:44.7474957Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7475051Z               "line": 528
2026-06-10T22:49:44.7475136Z             }
2026-06-10T22:49:44.7475227Z           ]
2026-06-10T22:49:44.7475312Z         }
2026-06-10T22:49:44.7475401Z       }
2026-06-10T22:49:44.7475478Z     },
2026-06-10T22:49:44.7475555Z     {
2026-06-10T22:49:44.7475683Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-10T22:49:44.7476322Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-10T22:49:44.7476427Z       "requiredStages": [
2026-06-10T22:49:44.7476518Z         "impl",
2026-06-10T22:49:44.7476608Z         "unit"
2026-06-10T22:49:44.7476698Z       ],
2026-06-10T22:49:44.7476785Z       "stages": {
2026-06-10T22:49:44.7476880Z         "doc": {
2026-06-10T22:49:44.7476980Z           "complete": false,
2026-06-10T22:49:44.7477071Z           "evidence": []
2026-06-10T22:49:44.7477157Z         },
2026-06-10T22:49:44.7477246Z         "impl": {
2026-06-10T22:49:44.7477352Z           "complete": true,
2026-06-10T22:49:44.7477439Z           "evidence": [
2026-06-10T22:49:44.7477524Z             {
2026-06-10T22:49:44.7477667Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.7477763Z               "line": 27
2026-06-10T22:49:44.7477857Z             },
2026-06-10T22:49:44.7477942Z             {
2026-06-10T22:49:44.7478076Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.7478172Z               "line": 110
2026-06-10T22:49:44.7478266Z             },
2026-06-10T22:49:44.7478362Z             {
2026-06-10T22:49:44.7478486Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.7478580Z               "line": 153
2026-06-10T22:49:44.7478672Z             },
2026-06-10T22:49:44.7478768Z             {
2026-06-10T22:49:44.7478890Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.7479073Z               "line": 182
2026-06-10T22:49:44.7479163Z             },
2026-06-10T22:49:44.7479258Z             {
2026-06-10T22:49:44.7479407Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T22:49:44.7479502Z               "line": 31
2026-06-10T22:49:44.7479597Z             },
2026-06-10T22:49:44.7479684Z             {
2026-06-10T22:49:44.7479830Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T22:49:44.7479930Z               "line": 113
2026-06-10T22:49:44.7480023Z             },
2026-06-10T22:49:44.7480120Z             {
2026-06-10T22:49:44.7480258Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T22:49:44.7480466Z               "line": 138
2026-06-10T22:49:44.7480556Z             }
2026-06-10T22:49:44.7480643Z           ]
2026-06-10T22:49:44.7480734Z         },
2026-06-10T22:49:44.7480828Z         "int": {
2026-06-10T22:49:44.7480928Z           "complete": false,
2026-06-10T22:49:44.7481020Z           "evidence": []
2026-06-10T22:49:44.7481109Z         },
2026-06-10T22:49:44.7481296Z         "unit": {
2026-06-10T22:49:44.7481396Z           "complete": true,
2026-06-10T22:49:44.7481500Z           "evidence": [
2026-06-10T22:49:44.7481587Z             {
2026-06-10T22:49:44.7481720Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.7481815Z               "line": 261
2026-06-10T22:49:44.7481907Z             },
2026-06-10T22:49:44.7481996Z             {
2026-06-10T22:49:44.7482125Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.7482222Z               "line": 276
2026-06-10T22:49:44.7482320Z             },
2026-06-10T22:49:44.7482411Z             {
2026-06-10T22:49:44.7482541Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.7482640Z               "line": 293
2026-06-10T22:49:44.7482736Z             },
2026-06-10T22:49:44.7482823Z             {
2026-06-10T22:49:44.7482955Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.7483050Z               "line": 310
2026-06-10T22:49:44.7483149Z             },
2026-06-10T22:49:44.7483240Z             {
2026-06-10T22:49:44.7483371Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.7483471Z               "line": 327
2026-06-10T22:49:44.7483563Z             },
2026-06-10T22:49:44.7483652Z             {
2026-06-10T22:49:44.7483786Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.7483882Z               "line": 366
2026-06-10T22:49:44.7483967Z             },
2026-06-10T22:49:44.7484062Z             {
2026-06-10T22:49:44.7484220Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T22:49:44.7484315Z               "line": 179
2026-06-10T22:49:44.7484406Z             },
2026-06-10T22:49:44.7484492Z             {
2026-06-10T22:49:44.7484635Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T22:49:44.7484730Z               "line": 194
2026-06-10T22:49:44.7484821Z             },
2026-06-10T22:49:44.7484930Z             {
2026-06-10T22:49:44.7485064Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T22:49:44.7485160Z               "line": 204
2026-06-10T22:49:44.7485250Z             },
2026-06-10T22:49:44.7485340Z             {
2026-06-10T22:49:44.7485479Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T22:49:44.7485574Z               "line": 259
2026-06-10T22:49:44.7485668Z             },
2026-06-10T22:49:44.7485759Z             {
2026-06-10T22:49:44.7485900Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T22:49:44.7485999Z               "line": 269
2026-06-10T22:49:44.7486090Z             },
2026-06-10T22:49:44.7486182Z             {
2026-06-10T22:49:44.7486319Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T22:49:44.7486415Z               "line": 283
2026-06-10T22:49:44.7486506Z             }
2026-06-10T22:49:44.7486600Z           ]
2026-06-10T22:49:44.7486692Z         }
2026-06-10T22:49:44.7486792Z       }
2026-06-10T22:49:44.7486887Z     },
2026-06-10T22:49:44.7486973Z     {
2026-06-10T22:49:44.7487092Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-10T22:49:44.7487283Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-10T22:49:44.7487388Z       "requiredStages": [],
2026-06-10T22:49:44.7487478Z       "stages": {
2026-06-10T22:49:44.7487573Z         "doc": {
2026-06-10T22:49:44.7487674Z           "complete": false,
2026-06-10T22:49:44.7487769Z           "evidence": []
2026-06-10T22:49:44.7487941Z         },
2026-06-10T22:49:44.7488032Z         "impl": {
2026-06-10T22:49:44.7488121Z           "complete": false,
2026-06-10T22:49:44.7488212Z           "evidence": []
2026-06-10T22:49:44.7488300Z         },
2026-06-10T22:49:44.7488385Z         "int": {
2026-06-10T22:49:44.7488473Z           "complete": false,
2026-06-10T22:49:44.7488568Z           "evidence": []
2026-06-10T22:49:44.7488640Z         },
2026-06-10T22:49:44.7488816Z         "unit": {
2026-06-10T22:49:44.7488907Z           "complete": false,
2026-06-10T22:49:44.7489080Z           "evidence": []
2026-06-10T22:49:44.7489164Z         }
2026-06-10T22:49:44.7489252Z       }
2026-06-10T22:49:44.7489342Z     },
2026-06-10T22:49:44.7489428Z     {
2026-06-10T22:49:44.7489556Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-10T22:49:44.7490338Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-10T22:49:44.7490447Z       "requiredStages": [
2026-06-10T22:49:44.7490539Z         "impl",
2026-06-10T22:49:44.7490630Z         "unit"
2026-06-10T22:49:44.7490723Z       ],
2026-06-10T22:49:44.7490823Z       "stages": {
2026-06-10T22:49:44.7490928Z         "doc": {
2026-06-10T22:49:44.7491026Z           "complete": false,
2026-06-10T22:49:44.7491121Z           "evidence": []
2026-06-10T22:49:44.7491222Z         },
2026-06-10T22:49:44.7491313Z         "impl": {
2026-06-10T22:49:44.7491412Z           "complete": true,
2026-06-10T22:49:44.7491512Z           "evidence": [
2026-06-10T22:49:44.7491603Z             {
2026-06-10T22:49:44.7491736Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.7491833Z               "line": 26
2026-06-10T22:49:44.7491923Z             },
2026-06-10T22:49:44.7492017Z             {
2026-06-10T22:49:44.7492143Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.7492247Z               "line": 95
2026-06-10T22:49:44.7492346Z             },
2026-06-10T22:49:44.7492433Z             {
2026-06-10T22:49:44.7492556Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.7492656Z               "line": 166
2026-06-10T22:49:44.7492743Z             },
2026-06-10T22:49:44.7492834Z             {
2026-06-10T22:49:44.7492957Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T22:49:44.7493063Z               "line": 19
2026-06-10T22:49:44.7493163Z             },
2026-06-10T22:49:44.7493247Z             {
2026-06-10T22:49:44.7493373Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T22:49:44.7493469Z               "line": 50
2026-06-10T22:49:44.7493562Z             },
2026-06-10T22:49:44.7493652Z             {
2026-06-10T22:49:44.7493772Z               "path": "crates/spt-live/src/turn.rs",
2026-06-10T22:49:44.7493869Z               "line": 18
2026-06-10T22:49:44.7493960Z             },
2026-06-10T22:49:44.7494060Z             {
2026-06-10T22:49:44.7494171Z               "path": "crates/spt-live/src/turn.rs",
2026-06-10T22:49:44.7494265Z               "line": 71
2026-06-10T22:49:44.7494356Z             },
2026-06-10T22:49:44.7494452Z             {
2026-06-10T22:49:44.7494575Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.7494671Z               "line": 70
2026-06-10T22:49:44.7494761Z             }
2026-06-10T22:49:44.7494861Z           ]
2026-06-10T22:49:44.7494951Z         },
2026-06-10T22:49:44.7495043Z         "int": {
2026-06-10T22:49:44.7495147Z           "complete": false,
2026-06-10T22:49:44.7495243Z           "evidence": []
2026-06-10T22:49:44.7495329Z         },
2026-06-10T22:49:44.7495424Z         "unit": {
2026-06-10T22:49:44.7495524Z           "complete": true,
2026-06-10T22:49:44.7495625Z           "evidence": [
2026-06-10T22:49:44.7495711Z             {
2026-06-10T22:49:44.7495838Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.7495945Z               "line": 289
2026-06-10T22:49:44.7496139Z             },
2026-06-10T22:49:44.7496233Z             {
2026-06-10T22:49:44.7496357Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.7496455Z               "line": 308
2026-06-10T22:49:44.7496550Z             },
2026-06-10T22:49:44.7496642Z             {
2026-06-10T22:49:44.7496761Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.7496952Z               "line": 336
2026-06-10T22:49:44.7497042Z             },
2026-06-10T22:49:44.7497137Z             {
2026-06-10T22:49:44.7497257Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.7497357Z               "line": 399
2026-06-10T22:49:44.7497451Z             },
2026-06-10T22:49:44.7497547Z             {
2026-06-10T22:49:44.7497662Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.7497757Z               "line": 410
2026-06-10T22:49:44.7497852Z             },
2026-06-10T22:49:44.7497948Z             {
2026-06-10T22:49:44.7498081Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.7498177Z               "line": 441
2026-06-10T22:49:44.7498273Z             },
2026-06-10T22:49:44.7498357Z             {
2026-06-10T22:49:44.7498487Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.7498578Z               "line": 452
2026-06-10T22:49:44.7498672Z             },
2026-06-10T22:49:44.7498772Z             {
2026-06-10T22:49:44.7498893Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T22:49:44.7499076Z               "line": 77
2026-06-10T22:49:44.7499177Z             },
2026-06-10T22:49:44.7499268Z             {
2026-06-10T22:49:44.7499381Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T22:49:44.7499482Z               "line": 97
2026-06-10T22:49:44.7499574Z             },
2026-06-10T22:49:44.7499663Z             {
2026-06-10T22:49:44.7499787Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T22:49:44.7499883Z               "line": 112
2026-06-10T22:49:44.7499974Z             },
2026-06-10T22:49:44.7500063Z             {
2026-06-10T22:49:44.7500184Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T22:49:44.7500278Z               "line": 123
2026-06-10T22:49:44.7500368Z             },
2026-06-10T22:49:44.7500461Z             {
2026-06-10T22:49:44.7500574Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T22:49:44.7500678Z               "line": 130
2026-06-10T22:49:44.7500776Z             },
2026-06-10T22:49:44.7500870Z             {
2026-06-10T22:49:44.7500989Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T22:49:44.7501085Z               "line": 145
2026-06-10T22:49:44.7501180Z             },
2026-06-10T22:49:44.7501260Z             {
2026-06-10T22:49:44.7501373Z               "path": "crates/spt-live/src/turn.rs",
2026-06-10T22:49:44.7501464Z               "line": 115
2026-06-10T22:49:44.7501558Z             },
2026-06-10T22:49:44.7501648Z             {
2026-06-10T22:49:44.7501753Z               "path": "crates/spt-live/src/turn.rs",
2026-06-10T22:49:44.7501850Z               "line": 130
2026-06-10T22:49:44.7501929Z             },
2026-06-10T22:49:44.7502020Z             {
2026-06-10T22:49:44.7502130Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T22:49:44.7502221Z               "line": 336
2026-06-10T22:49:44.7502311Z             }
2026-06-10T22:49:44.7502398Z           ]
2026-06-10T22:49:44.7502492Z         }
2026-06-10T22:49:44.7502577Z       }
2026-06-10T22:49:44.7502669Z     },
2026-06-10T22:49:44.7502755Z     {
2026-06-10T22:49:44.7502878Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-10T22:49:44.7503126Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-10T22:49:44.7503226Z       "requiredStages": [
2026-06-10T22:49:44.7503318Z         "impl",
2026-06-10T22:49:44.7503409Z         "unit"
2026-06-10T22:49:44.7503503Z       ],
2026-06-10T22:49:44.7503599Z       "stages": {
2026-06-10T22:49:44.7503832Z         "doc": {
2026-06-10T22:49:44.7503933Z           "complete": true,
2026-06-10T22:49:44.7504024Z           "evidence": [
2026-06-10T22:49:44.7504113Z             {
2026-06-10T22:49:44.7504222Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T22:49:44.7504322Z               "line": 139
2026-06-10T22:49:44.7504411Z             }
2026-06-10T22:49:44.7504496Z           ]
2026-06-10T22:49:44.7504683Z         },
2026-06-10T22:49:44.7504773Z         "impl": {
2026-06-10T22:49:44.7504877Z           "complete": true,
2026-06-10T22:49:44.7504965Z           "evidence": [
2026-06-10T22:49:44.7505050Z             {
2026-06-10T22:49:44.7505159Z               "path": "crates/spt-store/src/db.rs",
2026-06-10T22:49:44.7505260Z               "line": 29
2026-06-10T22:49:44.7505355Z             },
2026-06-10T22:49:44.7505440Z             {
2026-06-10T22:49:44.7505565Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.7505660Z               "line": 101
2026-06-10T22:49:44.7505759Z             },
2026-06-10T22:49:44.7505850Z             {
2026-06-10T22:49:44.7505975Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7506070Z               "line": 30
2026-06-10T22:49:44.7506160Z             },
2026-06-10T22:49:44.7506262Z             {
2026-06-10T22:49:44.7506384Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7506480Z               "line": 48
2026-06-10T22:49:44.7506586Z             }
2026-06-10T22:49:44.7506670Z           ]
2026-06-10T22:49:44.7506764Z         },
2026-06-10T22:49:44.7506855Z         "int": {
2026-06-10T22:49:44.7506954Z           "complete": false,
2026-06-10T22:49:44.7507049Z           "evidence": []
2026-06-10T22:49:44.7507139Z         },
2026-06-10T22:49:44.7507235Z         "unit": {
2026-06-10T22:49:44.7507330Z           "complete": true,
2026-06-10T22:49:44.7507429Z           "evidence": [
2026-06-10T22:49:44.7507522Z             {
2026-06-10T22:49:44.7507645Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7507744Z               "line": 162
2026-06-10T22:49:44.7507841Z             }
2026-06-10T22:49:44.7507931Z           ]
2026-06-10T22:49:44.7508016Z         }
2026-06-10T22:49:44.7508108Z       }
2026-06-10T22:49:44.7508193Z     },
2026-06-10T22:49:44.7508288Z     {
2026-06-10T22:49:44.7508407Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-10T22:49:44.7508790Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-10T22:49:44.7508899Z       "requiredStages": [
2026-06-10T22:49:44.7509091Z         "doc",
2026-06-10T22:49:44.7509190Z         "impl",
2026-06-10T22:49:44.7509275Z         "unit"
2026-06-10T22:49:44.7509372Z       ],
2026-06-10T22:49:44.7509458Z       "stages": {
2026-06-10T22:49:44.7509556Z         "doc": {
2026-06-10T22:49:44.7509655Z           "complete": true,
2026-06-10T22:49:44.7509752Z           "evidence": [
2026-06-10T22:49:44.7509843Z             {
2026-06-10T22:49:44.7509960Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T22:49:44.7510062Z               "line": 151
2026-06-10T22:49:44.7510148Z             }
2026-06-10T22:49:44.7510242Z           ]
2026-06-10T22:49:44.7510333Z         },
2026-06-10T22:49:44.7510424Z         "impl": {
2026-06-10T22:49:44.7510520Z           "complete": true,
2026-06-10T22:49:44.7510613Z           "evidence": [
2026-06-10T22:49:44.7510720Z             {
2026-06-10T22:49:44.7510838Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7510938Z               "line": 22
2026-06-10T22:49:44.7511030Z             }
2026-06-10T22:49:44.7511120Z           ]
2026-06-10T22:49:44.7511215Z         },
2026-06-10T22:49:44.7511301Z         "int": {
2026-06-10T22:49:44.7511402Z           "complete": false,
2026-06-10T22:49:44.7511496Z           "evidence": []
2026-06-10T22:49:44.7511587Z         },
2026-06-10T22:49:44.7511683Z         "unit": {
2026-06-10T22:49:44.7511782Z           "complete": true,
2026-06-10T22:49:44.7511987Z           "evidence": [
2026-06-10T22:49:44.7512076Z             {
2026-06-10T22:49:44.7512199Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7512294Z               "line": 298
2026-06-10T22:49:44.7512385Z             }
2026-06-10T22:49:44.7512480Z           ]
2026-06-10T22:49:44.7512566Z         }
2026-06-10T22:49:44.7512657Z       }
2026-06-10T22:49:44.7512743Z     },
2026-06-10T22:49:44.7512943Z     {
2026-06-10T22:49:44.7513057Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-10T22:49:44.7513500Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-10T22:49:44.7513606Z       "requiredStages": [
2026-06-10T22:49:44.7513696Z         "impl",
2026-06-10T22:49:44.7513786Z         "unit"
2026-06-10T22:49:44.7513883Z       ],
2026-06-10T22:49:44.7513978Z       "stages": {
2026-06-10T22:49:44.7514063Z         "doc": {
2026-06-10T22:49:44.7514173Z           "complete": true,
2026-06-10T22:49:44.7514269Z           "evidence": [
2026-06-10T22:49:44.7514358Z             {
2026-06-10T22:49:44.7514474Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T22:49:44.7514570Z               "line": 145
2026-06-10T22:49:44.7514664Z             }
2026-06-10T22:49:44.7514754Z           ]
2026-06-10T22:49:44.7516897Z         },
2026-06-10T22:49:44.7517016Z         "impl": {
2026-06-10T22:49:44.7517132Z           "complete": true,
2026-06-10T22:49:44.7517235Z           "evidence": [
2026-06-10T22:49:44.7517320Z             {
2026-06-10T22:49:44.7517463Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7517557Z               "line": 540
2026-06-10T22:49:44.7517647Z             },
2026-06-10T22:49:44.7517737Z             {
2026-06-10T22:49:44.7517871Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7517966Z               "line": 184
2026-06-10T22:49:44.7518052Z             },
2026-06-10T22:49:44.7518157Z             {
2026-06-10T22:49:44.7518286Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7518377Z               "line": 282
2026-06-10T22:49:44.7518472Z             },
2026-06-10T22:49:44.7518557Z             {
2026-06-10T22:49:44.7518677Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-10T22:49:44.7518768Z               "line": 20
2026-06-10T22:49:44.7518853Z             }
2026-06-10T22:49:44.7519055Z           ]
2026-06-10T22:49:44.7519149Z         },
2026-06-10T22:49:44.7519239Z         "int": {
2026-06-10T22:49:44.7519336Z           "complete": false,
2026-06-10T22:49:44.7519430Z           "evidence": []
2026-06-10T22:49:44.7519521Z         },
2026-06-10T22:49:44.7519612Z         "unit": {
2026-06-10T22:49:44.7519708Z           "complete": true,
2026-06-10T22:49:44.7519806Z           "evidence": [
2026-06-10T22:49:44.7519893Z             {
2026-06-10T22:49:44.7520023Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7520121Z               "line": 856
2026-06-10T22:49:44.7520211Z             },
2026-06-10T22:49:44.7520297Z             {
2026-06-10T22:49:44.7520426Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-10T22:49:44.7520526Z               "line": 88
2026-06-10T22:49:44.7520612Z             },
2026-06-10T22:49:44.7520698Z             {
2026-06-10T22:49:44.7520821Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7520922Z               "line": 802
2026-06-10T22:49:44.7521013Z             },
2026-06-10T22:49:44.7521098Z             {
2026-06-10T22:49:44.7521223Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7521327Z               "line": 821
2026-06-10T22:49:44.7521418Z             },
2026-06-10T22:49:44.7521508Z             {
2026-06-10T22:49:44.7521628Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T22:49:44.7521727Z               "line": 278
2026-06-10T22:49:44.7521818Z             },
2026-06-10T22:49:44.7522037Z             {
2026-06-10T22:49:44.7522157Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-10T22:49:44.7522249Z               "line": 82
2026-06-10T22:49:44.7522342Z             },
2026-06-10T22:49:44.7522427Z             {
2026-06-10T22:49:44.7522547Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-10T22:49:44.7522641Z               "line": 99
2026-06-10T22:49:44.7522730Z             },
2026-06-10T22:49:44.7522955Z             {
2026-06-10T22:49:44.7523068Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-10T22:49:44.7523164Z               "line": 119
2026-06-10T22:49:44.7523256Z             }
2026-06-10T22:49:44.7523346Z           ]
2026-06-10T22:49:44.7523435Z         }
2026-06-10T22:49:44.7523522Z       }
2026-06-10T22:49:44.7523613Z     },
2026-06-10T22:49:44.7523708Z     {
2026-06-10T22:49:44.7523828Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-10T22:49:44.7525139Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-10T22:49:44.7525262Z       "requiredStages": [
2026-06-10T22:49:44.7525361Z         "doc",
2026-06-10T22:49:44.7525452Z         "impl",
2026-06-10T22:49:44.7525546Z         "unit"
2026-06-10T22:49:44.7525630Z       ],
2026-06-10T22:49:44.7525722Z       "stages": {
2026-06-10T22:49:44.7525817Z         "doc": {
2026-06-10T22:49:44.7525917Z           "complete": true,
2026-06-10T22:49:44.7526012Z           "evidence": [
2026-06-10T22:49:44.7526099Z             {
2026-06-10T22:49:44.7526208Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T22:49:44.7526293Z               "line": 157
2026-06-10T22:49:44.7526385Z             }
2026-06-10T22:49:44.7526484Z           ]
2026-06-10T22:49:44.7526561Z         },
2026-06-10T22:49:44.7526651Z         "impl": {
2026-06-10T22:49:44.7526747Z           "complete": true,
2026-06-10T22:49:44.7526847Z           "evidence": [
2026-06-10T22:49:44.7526923Z             {
2026-06-10T22:49:44.7527058Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7527147Z               "line": 394
2026-06-10T22:49:44.7527237Z             },
2026-06-10T22:49:44.7527330Z             {
2026-06-10T22:49:44.7527457Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7527552Z               "line": 484
2026-06-10T22:49:44.7527630Z             },
2026-06-10T22:49:44.7527730Z             {
2026-06-10T22:49:44.7527852Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7527947Z               "line": 491
2026-06-10T22:49:44.7528038Z             },
2026-06-10T22:49:44.7528122Z             {
2026-06-10T22:49:44.7528244Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7528351Z               "line": 211
2026-06-10T22:49:44.7528441Z             }
2026-06-10T22:49:44.7528526Z           ]
2026-06-10T22:49:44.7528608Z         },
2026-06-10T22:49:44.7528699Z         "int": {
2026-06-10T22:49:44.7528793Z           "complete": false,
2026-06-10T22:49:44.7528888Z           "evidence": []
2026-06-10T22:49:44.7529056Z         },
2026-06-10T22:49:44.7529155Z         "unit": {
2026-06-10T22:49:44.7529252Z           "complete": true,
2026-06-10T22:49:44.7529342Z           "evidence": [
2026-06-10T22:49:44.7529432Z             {
2026-06-10T22:49:44.7529552Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7529652Z               "line": 1484
2026-06-10T22:49:44.7529729Z             },
2026-06-10T22:49:44.7529814Z             {
2026-06-10T22:49:44.7529934Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7530033Z               "line": 1542
2026-06-10T22:49:44.7530230Z             },
2026-06-10T22:49:44.7530315Z             {
2026-06-10T22:49:44.7530439Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7530535Z               "line": 834
2026-06-10T22:49:44.7530616Z             }
2026-06-10T22:49:44.7530705Z           ]
2026-06-10T22:49:44.7530785Z         }
2026-06-10T22:49:44.7530872Z       }
2026-06-10T22:49:44.7530954Z     },
2026-06-10T22:49:44.7531043Z     {
2026-06-10T22:49:44.7531258Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-10T22:49:44.7531453Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-10T22:49:44.7531549Z       "requiredStages": [
2026-06-10T22:49:44.7531640Z         "impl",
2026-06-10T22:49:44.7531730Z         "unit"
2026-06-10T22:49:44.7531811Z       ],
2026-06-10T22:49:44.7531906Z       "stages": {
2026-06-10T22:49:44.7532001Z         "doc": {
2026-06-10T22:49:44.7532097Z           "complete": false,
2026-06-10T22:49:44.7532193Z           "evidence": []
2026-06-10T22:49:44.7532288Z         },
2026-06-10T22:49:44.7532378Z         "impl": {
2026-06-10T22:49:44.7532475Z           "complete": true,
2026-06-10T22:49:44.7532574Z           "evidence": [
2026-06-10T22:49:44.7532650Z             {
2026-06-10T22:49:44.7532770Z               "path": "crates/spt-store/src/proc.rs",
2026-06-10T22:49:44.7532870Z               "line": 15
2026-06-10T22:49:44.7532959Z             },
2026-06-10T22:49:44.7533059Z             {
2026-06-10T22:49:44.7533173Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7533262Z               "line": 55
2026-06-10T22:49:44.7533357Z             },
2026-06-10T22:49:44.7533429Z             {
2026-06-10T22:49:44.7533544Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7533638Z               "line": 66
2026-06-10T22:49:44.7533729Z             },
2026-06-10T22:49:44.7533806Z             {
2026-06-10T22:49:44.7533924Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7534025Z               "line": 115
2026-06-10T22:49:44.7534106Z             },
2026-06-10T22:49:44.7534192Z             {
2026-06-10T22:49:44.7534305Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7534402Z               "line": 138
2026-06-10T22:49:44.7534493Z             }
2026-06-10T22:49:44.7534582Z           ]
2026-06-10T22:49:44.7534673Z         },
2026-06-10T22:49:44.7534750Z         "int": {
2026-06-10T22:49:44.7534855Z           "complete": false,
2026-06-10T22:49:44.7534944Z           "evidence": []
2026-06-10T22:49:44.7535037Z         },
2026-06-10T22:49:44.7535117Z         "unit": {
2026-06-10T22:49:44.7535217Z           "complete": true,
2026-06-10T22:49:44.7535313Z           "evidence": [
2026-06-10T22:49:44.7535399Z             {
2026-06-10T22:49:44.7535517Z               "path": "crates/spt-store/src/proc.rs",
2026-06-10T22:49:44.7535609Z               "line": 149
2026-06-10T22:49:44.7535699Z             },
2026-06-10T22:49:44.7535784Z             {
2026-06-10T22:49:44.7535907Z               "path": "crates/spt-store/src/proc.rs",
2026-06-10T22:49:44.7536003Z               "line": 155
2026-06-10T22:49:44.7536087Z             },
2026-06-10T22:49:44.7536176Z             {
2026-06-10T22:49:44.7536286Z               "path": "crates/spt-store/src/proc.rs",
2026-06-10T22:49:44.7536382Z               "line": 169
2026-06-10T22:49:44.7536468Z             },
2026-06-10T22:49:44.7536558Z             {
2026-06-10T22:49:44.7536673Z               "path": "crates/spt-store/src/proc.rs",
2026-06-10T22:49:44.7536768Z               "line": 178
2026-06-10T22:49:44.7536853Z             },
2026-06-10T22:49:44.7536931Z             {
2026-06-10T22:49:44.7537045Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7537135Z               "line": 195
2026-06-10T22:49:44.7537225Z             },
2026-06-10T22:49:44.7537312Z             {
2026-06-10T22:49:44.7537431Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7537526Z               "line": 208
2026-06-10T22:49:44.7537693Z             },
2026-06-10T22:49:44.7537793Z             {
2026-06-10T22:49:44.7537909Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7538008Z               "line": 271
2026-06-10T22:49:44.7538103Z             },
2026-06-10T22:49:44.7538190Z             {
2026-06-10T22:49:44.7538314Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7538474Z               "line": 290
2026-06-10T22:49:44.7538564Z             },
2026-06-10T22:49:44.7538640Z             {
2026-06-10T22:49:44.7538757Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7538853Z               "line": 319
2026-06-10T22:49:44.7539034Z             }
2026-06-10T22:49:44.7539125Z           ]
2026-06-10T22:49:44.7539207Z         }
2026-06-10T22:49:44.7539292Z       }
2026-06-10T22:49:44.7539377Z     },
2026-06-10T22:49:44.7539468Z     {
2026-06-10T22:49:44.7539583Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-10T22:49:44.7539855Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-10T22:49:44.7539954Z       "requiredStages": [
2026-06-10T22:49:44.7540045Z         "impl",
2026-06-10T22:49:44.7540137Z         "unit",
2026-06-10T22:49:44.7540222Z         "int"
2026-06-10T22:49:44.7540303Z       ],
2026-06-10T22:49:44.7540398Z       "stages": {
2026-06-10T22:49:44.7540485Z         "doc": {
2026-06-10T22:49:44.7540584Z           "complete": false,
2026-06-10T22:49:44.7540674Z           "evidence": []
2026-06-10T22:49:44.7540766Z         },
2026-06-10T22:49:44.7540852Z         "impl": {
2026-06-10T22:49:44.7540951Z           "complete": true,
2026-06-10T22:49:44.7541047Z           "evidence": [
2026-06-10T22:49:44.7541124Z             {
2026-06-10T22:49:44.7541246Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7541336Z               "line": 313
2026-06-10T22:49:44.7541422Z             },
2026-06-10T22:49:44.7541509Z             {
2026-06-10T22:49:44.7541627Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7541718Z               "line": 695
2026-06-10T22:49:44.7541804Z             },
2026-06-10T22:49:44.7541894Z             {
2026-06-10T22:49:44.7542008Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7542105Z               "line": 718
2026-06-10T22:49:44.7542195Z             },
2026-06-10T22:49:44.7542280Z             {
2026-06-10T22:49:44.7542401Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.7542495Z               "line": 742
2026-06-10T22:49:44.7542585Z             },
2026-06-10T22:49:44.7542667Z             {
2026-06-10T22:49:44.7542781Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7542872Z               "line": 633
2026-06-10T22:49:44.7542967Z             },
2026-06-10T22:49:44.7543059Z             {
2026-06-10T22:49:44.7543172Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7543268Z               "line": 745
2026-06-10T22:49:44.7543360Z             },
2026-06-10T22:49:44.7543448Z             {
2026-06-10T22:49:44.7543566Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7543652Z               "line": 855
2026-06-10T22:49:44.7543742Z             },
2026-06-10T22:49:44.7543827Z             {
2026-06-10T22:49:44.7543941Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.7544037Z               "line": 903
2026-06-10T22:49:44.7544132Z             },
2026-06-10T22:49:44.7544222Z             {
2026-06-10T22:49:44.7544333Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-10T22:49:44.7544428Z               "line": 46
2026-06-10T22:49:44.7544518Z             },
2026-06-10T22:49:44.7544604Z             {
2026-06-10T22:49:44.7544714Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-10T22:49:44.7544813Z               "line": 167
2026-06-10T22:49:44.7544905Z             },
2026-06-10T22:49:44.7544991Z             {
2026-06-10T22:49:44.7545209Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-10T22:49:44.7545301Z               "line": 71
2026-06-10T22:49:44.7545386Z             },
2026-06-10T22:49:44.7545472Z             {
2026-06-10T22:49:44.7545592Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7545686Z               "line": 134
2026-06-10T22:49:44.7545763Z             },
2026-06-10T22:49:44.7545854Z             {
2026-06-10T22:49:44.7546053Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7546154Z               "line": 180
2026-06-10T22:49:44.7546232Z             }
2026-06-10T22:49:44.7546316Z           ]
2026-06-10T22:49:44.7546406Z         },
2026-06-10T22:49:44.7546486Z         "int": {
2026-06-10T22:49:44.7546572Z           "complete": true,
2026-06-10T22:49:44.7546670Z           "evidence": [
2026-06-10T22:49:44.7546755Z             {
2026-06-10T22:49:44.7546885Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-10T22:49:44.7546985Z               "line": 27
2026-06-10T22:49:44.7547080Z             },
2026-06-10T22:49:44.7547161Z             {
2026-06-10T22:49:44.7547290Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-10T22:49:44.7547385Z               "line": 129
2026-06-10T22:49:44.7547471Z             },
2026-06-10T22:49:44.7547558Z             {
2026-06-10T22:49:44.7547676Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-10T22:49:44.7547772Z               "line": 200
2026-06-10T22:49:44.7547853Z             }
2026-06-10T22:49:44.7547948Z           ]
2026-06-10T22:49:44.7548024Z         },
2026-06-10T22:49:44.7548115Z         "unit": {
2026-06-10T22:49:44.7548220Z           "complete": true,
2026-06-10T22:49:44.7548310Z           "evidence": [
2026-06-10T22:49:44.7548401Z             {
2026-06-10T22:49:44.7548516Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-10T22:49:44.7548610Z               "line": 313
2026-06-10T22:49:44.7548701Z             },
2026-06-10T22:49:44.7548798Z             {
2026-06-10T22:49:44.7548916Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-10T22:49:44.7549072Z               "line": 345
2026-06-10T22:49:44.7549167Z             },
2026-06-10T22:49:44.7549256Z             {
2026-06-10T22:49:44.7549370Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-10T22:49:44.7549461Z               "line": 366
2026-06-10T22:49:44.7549557Z             },
2026-06-10T22:49:44.7549651Z             {
2026-06-10T22:49:44.7549767Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-10T22:49:44.7549862Z               "line": 254
2026-06-10T22:49:44.7549951Z             },
2026-06-10T22:49:44.7550043Z             {
2026-06-10T22:49:44.7550162Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-10T22:49:44.7550252Z               "line": 239
2026-06-10T22:49:44.7550333Z             },
2026-06-10T22:49:44.7550415Z             {
2026-06-10T22:49:44.7550529Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-10T22:49:44.7550624Z               "line": 230
2026-06-10T22:49:44.7550716Z             },
2026-06-10T22:49:44.7550806Z             {
2026-06-10T22:49:44.7550915Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7551012Z               "line": 488
2026-06-10T22:49:44.7551097Z             },
2026-06-10T22:49:44.7551187Z             {
2026-06-10T22:49:44.7551302Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.7551398Z               "line": 518
2026-06-10T22:49:44.7551487Z             }
2026-06-10T22:49:44.7551568Z           ]
2026-06-10T22:49:44.7551656Z         }
2026-06-10T22:49:44.7551741Z       }
2026-06-10T22:49:44.7551830Z     },
2026-06-10T22:49:44.7551915Z     {
2026-06-10T22:49:44.7552045Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-10T22:49:44.7553638Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-10T22:49:44.7553866Z       "requiredStages": [
2026-06-10T22:49:44.7554046Z         "doc",
2026-06-10T22:49:44.7554132Z         "impl",
2026-06-10T22:49:44.7554222Z         "unit"
2026-06-10T22:49:44.7554317Z       ],
2026-06-10T22:49:44.7554411Z       "stages": {
2026-06-10T22:49:44.7554501Z         "doc": {
2026-06-10T22:49:44.7554597Z           "complete": true,
2026-06-10T22:49:44.7554687Z           "evidence": [
2026-06-10T22:49:44.7554773Z             {
2026-06-10T22:49:44.7554888Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T22:49:44.7554984Z               "line": 298
2026-06-10T22:49:44.7555064Z             }
2026-06-10T22:49:44.7555164Z           ]
2026-06-10T22:49:44.7555250Z         },
2026-06-10T22:49:44.7555340Z         "impl": {
2026-06-10T22:49:44.7555435Z           "complete": true,
2026-06-10T22:49:44.7555523Z           "evidence": [
2026-06-10T22:49:44.7555608Z             {
2026-06-10T22:49:44.7555746Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-10T22:49:44.7555842Z               "line": 33
2026-06-10T22:49:44.7555932Z             },
2026-06-10T22:49:44.7556013Z             {
2026-06-10T22:49:44.7556143Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-10T22:49:44.7556237Z               "line": 39
2026-06-10T22:49:44.7556328Z             }
2026-06-10T22:49:44.7556409Z           ]
2026-06-10T22:49:44.7556501Z         },
2026-06-10T22:49:44.7556584Z         "int": {
2026-06-10T22:49:44.7556681Z           "complete": false,
2026-06-10T22:49:44.7556772Z           "evidence": []
2026-06-10T22:49:44.7556867Z         },
2026-06-10T22:49:44.7556956Z         "unit": {
2026-06-10T22:49:44.7557051Z           "complete": true,
2026-06-10T22:49:44.7557147Z           "evidence": [
2026-06-10T22:49:44.7557235Z             {
2026-06-10T22:49:44.7557368Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-10T22:49:44.7557464Z               "line": 95
2026-06-10T22:49:44.7557545Z             }
2026-06-10T22:49:44.7557635Z           ]
2026-06-10T22:49:44.7557721Z         }
2026-06-10T22:49:44.7557817Z       }
2026-06-10T22:49:44.7557898Z     },
2026-06-10T22:49:44.7557983Z     {
2026-06-10T22:49:44.7558094Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-10T22:49:44.7558289Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-10T22:49:44.7558380Z       "requiredStages": [
2026-06-10T22:49:44.7558475Z         "impl",
2026-06-10T22:49:44.7558565Z         "unit"
2026-06-10T22:49:44.7558656Z       ],
2026-06-10T22:49:44.7558747Z       "stages": {
2026-06-10T22:49:44.7558837Z         "doc": {
2026-06-10T22:49:44.7559039Z           "complete": false,
2026-06-10T22:49:44.7559147Z           "evidence": []
2026-06-10T22:49:44.7559252Z         },
2026-06-10T22:49:44.7559349Z         "impl": {
2026-06-10T22:49:44.7559438Z           "complete": true,
2026-06-10T22:49:44.7559537Z           "evidence": [
2026-06-10T22:49:44.7559623Z             {
2026-06-10T22:49:44.7559755Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7559868Z               "line": 56
2026-06-10T22:49:44.7559959Z             },
2026-06-10T22:49:44.7560051Z             {
2026-06-10T22:49:44.7560178Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7560278Z               "line": 65
2026-06-10T22:49:44.7560370Z             },
2026-06-10T22:49:44.7560460Z             {
2026-06-10T22:49:44.7560584Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7560679Z               "line": 72
2026-06-10T22:49:44.7560765Z             },
2026-06-10T22:49:44.7560961Z             {
2026-06-10T22:49:44.7561084Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7561179Z               "line": 33
2026-06-10T22:49:44.7561267Z             },
2026-06-10T22:49:44.7561361Z             {
2026-06-10T22:49:44.7561475Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7561567Z               "line": 65
2026-06-10T22:49:44.7561657Z             },
2026-06-10T22:49:44.7561848Z             {
2026-06-10T22:49:44.7561958Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7562052Z               "line": 74
2026-06-10T22:49:44.7562143Z             },
2026-06-10T22:49:44.7562235Z             {
2026-06-10T22:49:44.7562348Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7562437Z               "line": 83
2026-06-10T22:49:44.7562528Z             },
2026-06-10T22:49:44.7562615Z             {
2026-06-10T22:49:44.7562733Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7562833Z               "line": 92
2026-06-10T22:49:44.7562920Z             },
2026-06-10T22:49:44.7563010Z             {
2026-06-10T22:49:44.7563124Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7563220Z               "line": 101
2026-06-10T22:49:44.7563311Z             },
2026-06-10T22:49:44.7563395Z             {
2026-06-10T22:49:44.7563511Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7563615Z               "line": 112
2026-06-10T22:49:44.7563710Z             },
2026-06-10T22:49:44.7563802Z             {
2026-06-10T22:49:44.7563916Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7564011Z               "line": 130
2026-06-10T22:49:44.7564102Z             },
2026-06-10T22:49:44.7564193Z             {
2026-06-10T22:49:44.7564306Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7564403Z               "line": 139
2026-06-10T22:49:44.7564489Z             },
2026-06-10T22:49:44.7564583Z             {
2026-06-10T22:49:44.7564701Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7564792Z               "line": 148
2026-06-10T22:49:44.7564887Z             },
2026-06-10T22:49:44.7564971Z             {
2026-06-10T22:49:44.7565086Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7565176Z               "line": 159
2026-06-10T22:49:44.7565266Z             },
2026-06-10T22:49:44.7565361Z             {
2026-06-10T22:49:44.7565477Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7565577Z               "line": 167
2026-06-10T22:49:44.7565662Z             },
2026-06-10T22:49:44.7565749Z             {
2026-06-10T22:49:44.7565863Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7565957Z               "line": 176
2026-06-10T22:49:44.7566045Z             },
2026-06-10T22:49:44.7566135Z             {
2026-06-10T22:49:44.7566248Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7566339Z               "line": 185
2026-06-10T22:49:44.7566436Z             },
2026-06-10T22:49:44.7566521Z             {
2026-06-10T22:49:44.7566640Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7566732Z               "line": 194
2026-06-10T22:49:44.7566821Z             },
2026-06-10T22:49:44.7566911Z             {
2026-06-10T22:49:44.7567022Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7567117Z               "line": 206
2026-06-10T22:49:44.7567217Z             },
2026-06-10T22:49:44.7567313Z             {
2026-06-10T22:49:44.7567432Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7567526Z               "line": 213
2026-06-10T22:49:44.7567616Z             },
2026-06-10T22:49:44.7567712Z             {
2026-06-10T22:49:44.7567828Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7567918Z               "line": 222
2026-06-10T22:49:44.7568010Z             },
2026-06-10T22:49:44.7568110Z             {
2026-06-10T22:49:44.7568296Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7568396Z               "line": 229
2026-06-10T22:49:44.7568481Z             },
2026-06-10T22:49:44.7568572Z             {
2026-06-10T22:49:44.7568687Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7568782Z               "line": 296
2026-06-10T22:49:44.7568872Z             },
2026-06-10T22:49:44.7569049Z             {
2026-06-10T22:49:44.7569265Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7569354Z               "line": 308
2026-06-10T22:49:44.7569435Z             },
2026-06-10T22:49:44.7569526Z             {
2026-06-10T22:49:44.7569641Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7569740Z               "line": 395
2026-06-10T22:49:44.7569822Z             }
2026-06-10T22:49:44.7569909Z           ]
2026-06-10T22:49:44.7569998Z         },
2026-06-10T22:49:44.7570093Z         "int": {
2026-06-10T22:49:44.7570192Z           "complete": false,
2026-06-10T22:49:44.7570292Z           "evidence": []
2026-06-10T22:49:44.7570391Z         },
2026-06-10T22:49:44.7570485Z         "unit": {
2026-06-10T22:49:44.7570581Z           "complete": true,
2026-06-10T22:49:44.7570672Z           "evidence": [
2026-06-10T22:49:44.7570762Z             {
2026-06-10T22:49:44.7570878Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7570968Z               "line": 477
2026-06-10T22:49:44.7571067Z             },
2026-06-10T22:49:44.7571153Z             {
2026-06-10T22:49:44.7571268Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7571363Z               "line": 518
2026-06-10T22:49:44.7571454Z             },
2026-06-10T22:49:44.7571550Z             {
2026-06-10T22:49:44.7571659Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7571749Z               "line": 531
2026-06-10T22:49:44.7571837Z             },
2026-06-10T22:49:44.7571926Z             {
2026-06-10T22:49:44.7572036Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7572142Z               "line": 617
2026-06-10T22:49:44.7572236Z             }
2026-06-10T22:49:44.7572322Z           ]
2026-06-10T22:49:44.7572418Z         }
2026-06-10T22:49:44.7572504Z       }
2026-06-10T22:49:44.7572588Z     },
2026-06-10T22:49:44.7572675Z     {
2026-06-10T22:49:44.7572786Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-10T22:49:44.7572978Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-10T22:49:44.7573083Z       "requiredStages": [
2026-06-10T22:49:44.7573170Z         "impl",
2026-06-10T22:49:44.7573260Z         "unit"
2026-06-10T22:49:44.7573355Z       ],
2026-06-10T22:49:44.7573442Z       "stages": {
2026-06-10T22:49:44.7573532Z         "doc": {
2026-06-10T22:49:44.7573631Z           "complete": false,
2026-06-10T22:49:44.7573723Z           "evidence": []
2026-06-10T22:49:44.7573818Z         },
2026-06-10T22:49:44.7573909Z         "impl": {
2026-06-10T22:49:44.7574009Z           "complete": true,
2026-06-10T22:49:44.7574105Z           "evidence": [
2026-06-10T22:49:44.7574194Z             {
2026-06-10T22:49:44.7574318Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T22:49:44.7574410Z               "line": 143
2026-06-10T22:49:44.7574500Z             },
2026-06-10T22:49:44.7574586Z             {
2026-06-10T22:49:44.7574711Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.7574801Z               "line": 148
2026-06-10T22:49:44.7574900Z             }
2026-06-10T22:49:44.7574991Z           ]
2026-06-10T22:49:44.7575078Z         },
2026-06-10T22:49:44.7575172Z         "int": {
2026-06-10T22:49:44.7575266Z           "complete": false,
2026-06-10T22:49:44.7575361Z           "evidence": []
2026-06-10T22:49:44.7575451Z         },
2026-06-10T22:49:44.7575545Z         "unit": {
2026-06-10T22:49:44.7575646Z           "complete": true,
2026-06-10T22:49:44.7575737Z           "evidence": [
2026-06-10T22:49:44.7575827Z             {
2026-06-10T22:49:44.7575936Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T22:49:44.7576142Z               "line": 264
2026-06-10T22:49:44.7576227Z             },
2026-06-10T22:49:44.7576319Z             {
2026-06-10T22:49:44.7576442Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.7576537Z               "line": 544
2026-06-10T22:49:44.7576628Z             },
2026-06-10T22:49:44.7576714Z             {
2026-06-10T22:49:44.7576914Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.7577010Z               "line": 557
2026-06-10T22:49:44.7577100Z             }
2026-06-10T22:49:44.7577195Z           ]
2026-06-10T22:49:44.7577277Z         }
2026-06-10T22:49:44.7577367Z       }
2026-06-10T22:49:44.7577453Z     },
2026-06-10T22:49:44.7577539Z     {
2026-06-10T22:49:44.7577654Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-10T22:49:44.7577791Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-10T22:49:44.7577893Z       "requiredStages": [
2026-06-10T22:49:44.7577992Z         "impl",
2026-06-10T22:49:44.7578081Z         "unit"
2026-06-10T22:49:44.7578166Z       ],
2026-06-10T22:49:44.7578257Z       "stages": {
2026-06-10T22:49:44.7578347Z         "doc": {
2026-06-10T22:49:44.7578446Z           "complete": false,
2026-06-10T22:49:44.7578551Z           "evidence": []
2026-06-10T22:49:44.7578638Z         },
2026-06-10T22:49:44.7578736Z         "impl": {
2026-06-10T22:49:44.7578832Z           "complete": true,
2026-06-10T22:49:44.7578933Z           "evidence": [
2026-06-10T22:49:44.7579104Z             {
2026-06-10T22:49:44.7579257Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7579352Z               "line": 114
2026-06-10T22:49:44.7579437Z             },
2026-06-10T22:49:44.7579529Z             {
2026-06-10T22:49:44.7579653Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.7579748Z               "line": 481
2026-06-10T22:49:44.7579830Z             }
2026-06-10T22:49:44.7579919Z           ]
2026-06-10T22:49:44.7580014Z         },
2026-06-10T22:49:44.7580101Z         "int": {
2026-06-10T22:49:44.7580202Z           "complete": false,
2026-06-10T22:49:44.7580291Z           "evidence": []
2026-06-10T22:49:44.7580382Z         },
2026-06-10T22:49:44.7580469Z         "unit": {
2026-06-10T22:49:44.7580563Z           "complete": true,
2026-06-10T22:49:44.7580662Z           "evidence": [
2026-06-10T22:49:44.7580738Z             {
2026-06-10T22:49:44.7580876Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.7580965Z               "line": 515
2026-06-10T22:49:44.7581055Z             }
2026-06-10T22:49:44.7581137Z           ]
2026-06-10T22:49:44.7581214Z         }
2026-06-10T22:49:44.7581298Z       }
2026-06-10T22:49:44.7581385Z     },
2026-06-10T22:49:44.7581476Z     {
2026-06-10T22:49:44.7581594Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-10T22:49:44.7581762Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-10T22:49:44.7581852Z       "requiredStages": [
2026-06-10T22:49:44.7581956Z         "impl",
2026-06-10T22:49:44.7582038Z         "unit"
2026-06-10T22:49:44.7582124Z       ],
2026-06-10T22:49:44.7582219Z       "stages": {
2026-06-10T22:49:44.7582300Z         "doc": {
2026-06-10T22:49:44.7582397Z           "complete": false,
2026-06-10T22:49:44.7582491Z           "evidence": []
2026-06-10T22:49:44.7582581Z         },
2026-06-10T22:49:44.7582673Z         "impl": {
2026-06-10T22:49:44.7582763Z           "complete": true,
2026-06-10T22:49:44.7582858Z           "evidence": [
2026-06-10T22:49:44.7582939Z             {
2026-06-10T22:49:44.7583064Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7583153Z               "line": 502
2026-06-10T22:49:44.7583240Z             },
2026-06-10T22:49:44.7583331Z             {
2026-06-10T22:49:44.7583444Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T22:49:44.7583539Z               "line": 28
2026-06-10T22:49:44.7583620Z             }
2026-06-10T22:49:44.7583830Z           ]
2026-06-10T22:49:44.7583910Z         },
2026-06-10T22:49:44.7583992Z         "int": {
2026-06-10T22:49:44.7584092Z           "complete": false,
2026-06-10T22:49:44.7584187Z           "evidence": []
2026-06-10T22:49:44.7584264Z         },
2026-06-10T22:49:44.7584345Z         "unit": {
2026-06-10T22:49:44.7584445Z           "complete": true,
2026-06-10T22:49:44.7584535Z           "evidence": [
2026-06-10T22:49:44.7584627Z             {
2026-06-10T22:49:44.7586821Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T22:49:44.7586945Z               "line": 229
2026-06-10T22:49:44.7587040Z             }
2026-06-10T22:49:44.7587126Z           ]
2026-06-10T22:49:44.7587208Z         }
2026-06-10T22:49:44.7587298Z       }
2026-06-10T22:49:44.7587383Z     },
2026-06-10T22:49:44.7587464Z     {
2026-06-10T22:49:44.7587579Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-10T22:49:44.7587726Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-10T22:49:44.7587833Z       "requiredStages": [],
2026-06-10T22:49:44.7587932Z       "stages": {
2026-06-10T22:49:44.7588027Z         "doc": {
2026-06-10T22:49:44.7588129Z           "complete": false,
2026-06-10T22:49:44.7588228Z           "evidence": []
2026-06-10T22:49:44.7588333Z         },
2026-06-10T22:49:44.7588429Z         "impl": {
2026-06-10T22:49:44.7588524Z           "complete": false,
2026-06-10T22:49:44.7588618Z           "evidence": []
2026-06-10T22:49:44.7588713Z         },
2026-06-10T22:49:44.7588803Z         "int": {
2026-06-10T22:49:44.7588902Z           "complete": false,
2026-06-10T22:49:44.7589078Z           "evidence": []
2026-06-10T22:49:44.7589183Z         },
2026-06-10T22:49:44.7589278Z         "unit": {
2026-06-10T22:49:44.7589373Z           "complete": false,
2026-06-10T22:49:44.7589465Z           "evidence": []
2026-06-10T22:49:44.7589560Z         }
2026-06-10T22:49:44.7589654Z       }
2026-06-10T22:49:44.7589736Z     },
2026-06-10T22:49:44.7589831Z     {
2026-06-10T22:49:44.7589949Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-10T22:49:44.7590113Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-10T22:49:44.7590218Z       "requiredStages": [
2026-06-10T22:49:44.7590318Z         "impl",
2026-06-10T22:49:44.7590409Z         "unit"
2026-06-10T22:49:44.7590494Z       ],
2026-06-10T22:49:44.7590593Z       "stages": {
2026-06-10T22:49:44.7590686Z         "doc": {
2026-06-10T22:49:44.7590785Z           "complete": false,
2026-06-10T22:49:44.7590894Z           "evidence": []
2026-06-10T22:49:44.7590991Z         },
2026-06-10T22:49:44.7591086Z         "impl": {
2026-06-10T22:49:44.7591180Z           "complete": true,
2026-06-10T22:49:44.7591279Z           "evidence": [
2026-06-10T22:49:44.7591365Z             {
2026-06-10T22:49:44.7591487Z               "path": "crates/spt-live/src/turn.rs",
2026-06-10T22:49:44.7591577Z               "line": 19
2026-06-10T22:49:44.7591668Z             },
2026-06-10T22:49:44.7591760Z             {
2026-06-10T22:49:44.7591887Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.7591983Z               "line": 347
2026-06-10T22:49:44.7592074Z             },
2026-06-10T22:49:44.7592163Z             {
2026-06-10T22:49:44.7592284Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.7592383Z               "line": 383
2026-06-10T22:49:44.7592478Z             },
2026-06-10T22:49:44.7592569Z             {
2026-06-10T22:49:44.7592689Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T22:49:44.7592789Z               "line": 15
2026-06-10T22:49:44.7592879Z             },
2026-06-10T22:49:44.7592966Z             {
2026-06-10T22:49:44.7593090Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T22:49:44.7593185Z               "line": 48
2026-06-10T22:49:44.7593271Z             },
2026-06-10T22:49:44.7593361Z             {
2026-06-10T22:49:44.7593475Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T22:49:44.7593581Z               "line": 119
2026-06-10T22:49:44.7593666Z             },
2026-06-10T22:49:44.7593886Z             {
2026-06-10T22:49:44.7594004Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7594099Z               "line": 2858
2026-06-10T22:49:44.7594190Z             }
2026-06-10T22:49:44.7594281Z           ]
2026-06-10T22:49:44.7594375Z         },
2026-06-10T22:49:44.7594461Z         "int": {
2026-06-10T22:49:44.7594562Z           "complete": false,
2026-06-10T22:49:44.7594662Z           "evidence": []
2026-06-10T22:49:44.7594848Z         },
2026-06-10T22:49:44.7594943Z         "unit": {
2026-06-10T22:49:44.7595038Z           "complete": true,
2026-06-10T22:49:44.7595134Z           "evidence": [
2026-06-10T22:49:44.7595230Z             {
2026-06-10T22:49:44.7595362Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.7595468Z               "line": 496
2026-06-10T22:49:44.7595554Z             },
2026-06-10T22:49:44.7595644Z             {
2026-06-10T22:49:44.7595763Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T22:49:44.7595869Z               "line": 165
2026-06-10T22:49:44.7595953Z             },
2026-06-10T22:49:44.7596044Z             {
2026-06-10T22:49:44.7596161Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T22:49:44.7596258Z               "line": 175
2026-06-10T22:49:44.7596348Z             }
2026-06-10T22:49:44.7596434Z           ]
2026-06-10T22:49:44.7596534Z         }
2026-06-10T22:49:44.7596623Z       }
2026-06-10T22:49:44.7596722Z     },
2026-06-10T22:49:44.7596814Z     {
2026-06-10T22:49:44.7596928Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-10T22:49:44.7597796Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-10T22:49:44.7597905Z       "requiredStages": [
2026-06-10T22:49:44.7598001Z         "impl",
2026-06-10T22:49:44.7598106Z         "unit"
2026-06-10T22:49:44.7598196Z       ],
2026-06-10T22:49:44.7598291Z       "stages": {
2026-06-10T22:49:44.7598379Z         "doc": {
2026-06-10T22:49:44.7598487Z           "complete": false,
2026-06-10T22:49:44.7598587Z           "evidence": []
2026-06-10T22:49:44.7598679Z         },
2026-06-10T22:49:44.7598774Z         "impl": {
2026-06-10T22:49:44.7598868Z           "complete": true,
2026-06-10T22:49:44.7599060Z           "evidence": [
2026-06-10T22:49:44.7599140Z             {
2026-06-10T22:49:44.7599249Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7599345Z               "line": 2616
2026-06-10T22:49:44.7599443Z             },
2026-06-10T22:49:44.7599528Z             {
2026-06-10T22:49:44.7599638Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T22:49:44.7599725Z               "line": 103
2026-06-10T22:49:44.7599810Z             },
2026-06-10T22:49:44.7599904Z             {
2026-06-10T22:49:44.7600015Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T22:49:44.7600120Z               "line": 135
2026-06-10T22:49:44.7600209Z             }
2026-06-10T22:49:44.7600297Z           ]
2026-06-10T22:49:44.7600387Z         },
2026-06-10T22:49:44.7600477Z         "int": {
2026-06-10T22:49:44.7600568Z           "complete": false,
2026-06-10T22:49:44.7600664Z           "evidence": []
2026-06-10T22:49:44.7600748Z         },
2026-06-10T22:49:44.7600829Z         "unit": {
2026-06-10T22:49:44.7600921Z           "complete": true,
2026-06-10T22:49:44.7601017Z           "evidence": [
2026-06-10T22:49:44.7601106Z             {
2026-06-10T22:49:44.7601221Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T22:49:44.7601327Z               "line": 258
2026-06-10T22:49:44.7601435Z             },
2026-06-10T22:49:44.7601531Z             {
2026-06-10T22:49:44.7601641Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T22:49:44.7601735Z               "line": 283
2026-06-10T22:49:44.7601825Z             },
2026-06-10T22:49:44.7602024Z             {
2026-06-10T22:49:44.7602137Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T22:49:44.7602238Z               "line": 296
2026-06-10T22:49:44.7602330Z             },
2026-06-10T22:49:44.7602423Z             {
2026-06-10T22:49:44.7602539Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T22:49:44.7602634Z               "line": 308
2026-06-10T22:49:44.7602724Z             }
2026-06-10T22:49:44.7602911Z           ]
2026-06-10T22:49:44.7603006Z         }
2026-06-10T22:49:44.7603100Z       }
2026-06-10T22:49:44.7603187Z     },
2026-06-10T22:49:44.7603282Z     {
2026-06-10T22:49:44.7603391Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-10T22:49:44.7603555Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-10T22:49:44.7603650Z       "requiredStages": [
2026-06-10T22:49:44.7603750Z         "impl",
2026-06-10T22:49:44.7603841Z         "unit"
2026-06-10T22:49:44.7603930Z       ],
2026-06-10T22:49:44.7604025Z       "stages": {
2026-06-10T22:49:44.7604123Z         "doc": {
2026-06-10T22:49:44.7604227Z           "complete": false,
2026-06-10T22:49:44.7604317Z           "evidence": []
2026-06-10T22:49:44.7604413Z         },
2026-06-10T22:49:44.7604514Z         "impl": {
2026-06-10T22:49:44.7604611Z           "complete": true,
2026-06-10T22:49:44.7604706Z           "evidence": [
2026-06-10T22:49:44.7604793Z             {
2026-06-10T22:49:44.7604917Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T22:49:44.7605017Z               "line": 35
2026-06-10T22:49:44.7605107Z             }
2026-06-10T22:49:44.7605203Z           ]
2026-06-10T22:49:44.7605293Z         },
2026-06-10T22:49:44.7605384Z         "int": {
2026-06-10T22:49:44.7605475Z           "complete": false,
2026-06-10T22:49:44.7605575Z           "evidence": []
2026-06-10T22:49:44.7605660Z         },
2026-06-10T22:49:44.7605762Z         "unit": {
2026-06-10T22:49:44.7605856Z           "complete": true,
2026-06-10T22:49:44.7605951Z           "evidence": [
2026-06-10T22:49:44.7606047Z             {
2026-06-10T22:49:44.7606166Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T22:49:44.7606266Z               "line": 220
2026-06-10T22:49:44.7606353Z             }
2026-06-10T22:49:44.7606438Z           ]
2026-06-10T22:49:44.7606533Z         }
2026-06-10T22:49:44.7606619Z       }
2026-06-10T22:49:44.7606711Z     },
2026-06-10T22:49:44.7606796Z     {
2026-06-10T22:49:44.7606913Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-10T22:49:44.7607173Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-10T22:49:44.7607278Z       "requiredStages": [
2026-06-10T22:49:44.7607369Z         "impl",
2026-06-10T22:49:44.7607460Z         "unit"
2026-06-10T22:49:44.7607555Z       ],
2026-06-10T22:49:44.7607645Z       "stages": {
2026-06-10T22:49:44.7607737Z         "doc": {
2026-06-10T22:49:44.7607836Z           "complete": false,
2026-06-10T22:49:44.7607931Z           "evidence": []
2026-06-10T22:49:44.7608027Z         },
2026-06-10T22:49:44.7608122Z         "impl": {
2026-06-10T22:49:44.7608217Z           "complete": true,
2026-06-10T22:49:44.7608309Z           "evidence": [
2026-06-10T22:49:44.7608399Z             {
2026-06-10T22:49:44.7608532Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.7608629Z               "line": 398
2026-06-10T22:49:44.7608723Z             },
2026-06-10T22:49:44.7608809Z             {
2026-06-10T22:49:44.7609042Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.7609138Z               "line": 409
2026-06-10T22:49:44.7609234Z             },
2026-06-10T22:49:44.7609325Z             {
2026-06-10T22:49:44.7609448Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.7609544Z               "line": 156
2026-06-10T22:49:44.7609630Z             }
2026-06-10T22:49:44.7609724Z           ]
2026-06-10T22:49:44.7609809Z         },
2026-06-10T22:49:44.7609900Z         "int": {
2026-06-10T22:49:44.7609999Z           "complete": false,
2026-06-10T22:49:44.7610207Z           "evidence": []
2026-06-10T22:49:44.7610304Z         },
2026-06-10T22:49:44.7610398Z         "unit": {
2026-06-10T22:49:44.7610498Z           "complete": true,
2026-06-10T22:49:44.7610590Z           "evidence": [
2026-06-10T22:49:44.7610680Z             {
2026-06-10T22:49:44.7610803Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.7610899Z               "line": 812
2026-06-10T22:49:44.7611103Z             },
2026-06-10T22:49:44.7611191Z             {
2026-06-10T22:49:44.7611313Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.7611404Z               "line": 826
2026-06-10T22:49:44.7611496Z             },
2026-06-10T22:49:44.7611586Z             {
2026-06-10T22:49:44.7611709Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.7611801Z               "line": 845
2026-06-10T22:49:44.7611892Z             },
2026-06-10T22:49:44.7611980Z             {
2026-06-10T22:49:44.7612101Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.7612197Z               "line": 862
2026-06-10T22:49:44.7612286Z             },
2026-06-10T22:49:44.7612362Z             {
2026-06-10T22:49:44.7612500Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-10T22:49:44.7612594Z               "line": 441
2026-06-10T22:49:44.7612688Z             }
2026-06-10T22:49:44.7612770Z           ]
2026-06-10T22:49:44.7612865Z         }
2026-06-10T22:49:44.7612965Z       }
2026-06-10T22:49:44.7613046Z     },
2026-06-10T22:49:44.7613133Z     {
2026-06-10T22:49:44.7613242Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-10T22:49:44.7614014Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-10T22:49:44.7614110Z       "requiredStages": [
2026-06-10T22:49:44.7614205Z         "doc",
2026-06-10T22:49:44.7614285Z         "impl",
2026-06-10T22:49:44.7614373Z         "unit"
2026-06-10T22:49:44.7614458Z       ],
2026-06-10T22:49:44.7614548Z       "stages": {
2026-06-10T22:49:44.7614639Z         "doc": {
2026-06-10T22:49:44.7614735Z           "complete": true,
2026-06-10T22:49:44.7614824Z           "evidence": [
2026-06-10T22:49:44.7614920Z             {
2026-06-10T22:49:44.7615035Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T22:49:44.7615135Z               "line": 343
2026-06-10T22:49:44.7615219Z             }
2026-06-10T22:49:44.7615310Z           ]
2026-06-10T22:49:44.7615392Z         },
2026-06-10T22:49:44.7615477Z         "impl": {
2026-06-10T22:49:44.7615572Z           "complete": true,
2026-06-10T22:49:44.7615663Z           "evidence": [
2026-06-10T22:49:44.7615753Z             {
2026-06-10T22:49:44.7615867Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T22:49:44.7615959Z               "line": 85
2026-06-10T22:49:44.7616049Z             },
2026-06-10T22:49:44.7616144Z             {
2026-06-10T22:49:44.7616264Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-10T22:49:44.7616369Z               "line": 99
2026-06-10T22:49:44.7616469Z             },
2026-06-10T22:49:44.7616559Z             {
2026-06-10T22:49:44.7616684Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.7616774Z               "line": 55
2026-06-10T22:49:44.7616874Z             },
2026-06-10T22:49:44.7616966Z             {
2026-06-10T22:49:44.7617083Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T22:49:44.7617174Z               "line": 31
2026-06-10T22:49:44.7617266Z             },
2026-06-10T22:49:44.7617360Z             {
2026-06-10T22:49:44.7617478Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T22:49:44.7617573Z               "line": 187
2026-06-10T22:49:44.7617664Z             },
2026-06-10T22:49:44.7617753Z             {
2026-06-10T22:49:44.7617877Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T22:49:44.7618043Z               "line": 95
2026-06-10T22:49:44.7618138Z             },
2026-06-10T22:49:44.7618230Z             {
2026-06-10T22:49:44.7618349Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.7618444Z               "line": 29
2026-06-10T22:49:44.7618535Z             },
2026-06-10T22:49:44.7618625Z             {
2026-06-10T22:49:44.7618744Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.7618917Z               "line": 104
2026-06-10T22:49:44.7619106Z             },
2026-06-10T22:49:44.7619194Z             {
2026-06-10T22:49:44.7619331Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7619421Z               "line": 192
2026-06-10T22:49:44.7619513Z             },
2026-06-10T22:49:44.7619602Z             {
2026-06-10T22:49:44.7619731Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-10T22:49:44.7619828Z               "line": 28
2026-06-10T22:49:44.7619922Z             },
2026-06-10T22:49:44.7620013Z             {
2026-06-10T22:49:44.7620128Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-10T22:49:44.7620223Z               "line": 74
2026-06-10T22:49:44.7620312Z             },
2026-06-10T22:49:44.7620402Z             {
2026-06-10T22:49:44.7620531Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-10T22:49:44.7620625Z               "line": 32
2026-06-10T22:49:44.7620724Z             },
2026-06-10T22:49:44.7620811Z             {
2026-06-10T22:49:44.7620934Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.7621029Z               "line": 40
2026-06-10T22:49:44.7621126Z             },
2026-06-10T22:49:44.7621216Z             {
2026-06-10T22:49:44.7621339Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.7621436Z               "line": 184
2026-06-10T22:49:44.7621521Z             },
2026-06-10T22:49:44.7621616Z             {
2026-06-10T22:49:44.7621731Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-10T22:49:44.7621836Z               "line": 70
2026-06-10T22:49:44.7621931Z             },
2026-06-10T22:49:44.7622022Z             {
2026-06-10T22:49:44.7622137Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T22:49:44.7622226Z               "line": 223
2026-06-10T22:49:44.7622327Z             },
2026-06-10T22:49:44.7622418Z             {
2026-06-10T22:49:44.7622541Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-10T22:49:44.7622647Z               "line": 37
2026-06-10T22:49:44.7622733Z             },
2026-06-10T22:49:44.7622823Z             {
2026-06-10T22:49:44.7622940Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T22:49:44.7623037Z               "line": 38
2026-06-10T22:49:44.7623126Z             },
2026-06-10T22:49:44.7623210Z             {
2026-06-10T22:49:44.7623334Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-10T22:49:44.7623430Z               "line": 36
2026-06-10T22:49:44.7623525Z             },
2026-06-10T22:49:44.7623616Z             {
2026-06-10T22:49:44.7623736Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-10T22:49:44.7623826Z               "line": 40
2026-06-10T22:49:44.7623916Z             }
2026-06-10T22:49:44.7624012Z           ]
2026-06-10T22:49:44.7624097Z         },
2026-06-10T22:49:44.7624188Z         "int": {
2026-06-10T22:49:44.7624284Z           "complete": false,
2026-06-10T22:49:44.7624389Z           "evidence": []
2026-06-10T22:49:44.7624484Z         },
2026-06-10T22:49:44.7624569Z         "unit": {
2026-06-10T22:49:44.7624675Z           "complete": true,
2026-06-10T22:49:44.7624765Z           "evidence": [
2026-06-10T22:49:44.7624855Z             {
2026-06-10T22:49:44.7624980Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T22:49:44.7625075Z               "line": 212
2026-06-10T22:49:44.7625170Z             },
2026-06-10T22:49:44.7625257Z             {
2026-06-10T22:49:44.7625384Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-10T22:49:44.7625582Z               "line": 136
2026-06-10T22:49:44.7625676Z             },
2026-06-10T22:49:44.7625760Z             {
2026-06-10T22:49:44.7625889Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-10T22:49:44.7625990Z               "line": 685
2026-06-10T22:49:44.7626075Z             },
2026-06-10T22:49:44.7626165Z             {
2026-06-10T22:49:44.7626281Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-10T22:49:44.7626475Z               "line": 224
2026-06-10T22:49:44.7626562Z             },
2026-06-10T22:49:44.7626657Z             {
2026-06-10T22:49:44.7626780Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-10T22:49:44.7626872Z               "line": 157
2026-06-10T22:49:44.7626967Z             },
2026-06-10T22:49:44.7627052Z             {
2026-06-10T22:49:44.7627173Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-10T22:49:44.7627268Z               "line": 112
2026-06-10T22:49:44.7627372Z             },
2026-06-10T22:49:44.7627463Z             {
2026-06-10T22:49:44.7627578Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-10T22:49:44.7627677Z               "line": 157
2026-06-10T22:49:44.7627763Z             },
2026-06-10T22:49:44.7627855Z             {
2026-06-10T22:49:44.7627977Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T22:49:44.7628071Z               "line": 215
2026-06-10T22:49:44.7628177Z             },
2026-06-10T22:49:44.7628261Z             {
2026-06-10T22:49:44.7628379Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-10T22:49:44.7628475Z               "line": 140
2026-06-10T22:49:44.7628567Z             },
2026-06-10T22:49:44.7628651Z             {
2026-06-10T22:49:44.7628775Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-10T22:49:44.7628871Z               "line": 162
2026-06-10T22:49:44.7629042Z             }
2026-06-10T22:49:44.7629134Z           ]
2026-06-10T22:49:44.7629224Z         }
2026-06-10T22:49:44.7629323Z       }
2026-06-10T22:49:44.7629410Z     },
2026-06-10T22:49:44.7629500Z     {
2026-06-10T22:49:44.7629628Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-10T22:49:44.7629787Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-10T22:49:44.7629892Z       "requiredStages": [
2026-06-10T22:49:44.7629982Z         "impl",
2026-06-10T22:49:44.7630078Z         "unit"
2026-06-10T22:49:44.7630167Z       ],
2026-06-10T22:49:44.7630267Z       "stages": {
2026-06-10T22:49:44.7630359Z         "doc": {
2026-06-10T22:49:44.7630464Z           "complete": false,
2026-06-10T22:49:44.7630563Z           "evidence": []
2026-06-10T22:49:44.7630650Z         },
2026-06-10T22:49:44.7630746Z         "impl": {
2026-06-10T22:49:44.7630839Z           "complete": true,
2026-06-10T22:49:44.7630934Z           "evidence": [
2026-06-10T22:49:44.7631030Z             {
2026-06-10T22:49:44.7631147Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7631246Z               "line": 95
2026-06-10T22:49:44.7631337Z             },
2026-06-10T22:49:44.7631429Z             {
2026-06-10T22:49:44.7631542Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.7631642Z               "line": 102
2026-06-10T22:49:44.7631729Z             }
2026-06-10T22:49:44.7631814Z           ]
2026-06-10T22:49:44.7631909Z         },
2026-06-10T22:49:44.7631996Z         "int": {
2026-06-10T22:49:44.7632096Z           "complete": false,
2026-06-10T22:49:44.7632195Z           "evidence": []
2026-06-10T22:49:44.7632291Z         },
2026-06-10T22:49:44.7632382Z         "unit": {
2026-06-10T22:49:44.7632477Z           "complete": true,
2026-06-10T22:49:44.7632572Z           "evidence": [
2026-06-10T22:49:44.7632659Z             {
2026-06-10T22:49:44.7632777Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7632868Z               "line": 250
2026-06-10T22:49:44.7632965Z             },
2026-06-10T22:49:44.7633058Z             {
2026-06-10T22:49:44.7633173Z               "path": "crates/spt-store/src/proc.rs",
2026-06-10T22:49:44.7633378Z               "line": 198
2026-06-10T22:49:44.7633467Z             },
2026-06-10T22:49:44.7633558Z             {
2026-06-10T22:49:44.7633672Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.7633771Z               "line": 442
2026-06-10T22:49:44.7633861Z             },
2026-06-10T22:49:44.7633947Z             {
2026-06-10T22:49:44.7634066Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.7634262Z               "line": 475
2026-06-10T22:49:44.7634353Z             }
2026-06-10T22:49:44.7634442Z           ]
2026-06-10T22:49:44.7634529Z         }
2026-06-10T22:49:44.7634620Z       }
2026-06-10T22:49:44.7634710Z     },
2026-06-10T22:49:44.7634800Z     {
2026-06-10T22:49:44.7634911Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-10T22:49:44.7635086Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-10T22:49:44.7635193Z       "requiredStages": [
2026-06-10T22:49:44.7635287Z         "impl",
2026-06-10T22:49:44.7635377Z         "unit"
2026-06-10T22:49:44.7635468Z       ],
2026-06-10T22:49:44.7635559Z       "stages": {
2026-06-10T22:49:44.7635649Z         "doc": {
2026-06-10T22:49:44.7635749Z           "complete": false,
2026-06-10T22:49:44.7635846Z           "evidence": []
2026-06-10T22:49:44.7635935Z         },
2026-06-10T22:49:44.7636026Z         "impl": {
2026-06-10T22:49:44.7636122Z           "complete": true,
2026-06-10T22:49:44.7636231Z           "evidence": [
2026-06-10T22:49:44.7636316Z             {
2026-06-10T22:49:44.7636439Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7636536Z               "line": 252
2026-06-10T22:49:44.7636626Z             },
2026-06-10T22:49:44.7636716Z             {
2026-06-10T22:49:44.7636827Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7636922Z               "line": 297
2026-06-10T22:49:44.7637006Z             },
2026-06-10T22:49:44.7637094Z             {
2026-06-10T22:49:44.7637222Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7637312Z               "line": 309
2026-06-10T22:49:44.7637403Z             }
2026-06-10T22:49:44.7637494Z           ]
2026-06-10T22:49:44.7637575Z         },
2026-06-10T22:49:44.7637665Z         "int": {
2026-06-10T22:49:44.7637756Z           "complete": false,
2026-06-10T22:49:44.7637851Z           "evidence": []
2026-06-10T22:49:44.7637928Z         },
2026-06-10T22:49:44.7638018Z         "unit": {
2026-06-10T22:49:44.7638114Z           "complete": true,
2026-06-10T22:49:44.7638217Z           "evidence": [
2026-06-10T22:49:44.7638294Z             {
2026-06-10T22:49:44.7638415Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7638509Z               "line": 445
2026-06-10T22:49:44.7638584Z             },
2026-06-10T22:49:44.7638685Z             {
2026-06-10T22:49:44.7638794Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7638887Z               "line": 489
2026-06-10T22:49:44.7639059Z             }
2026-06-10T22:49:44.7639155Z           ]
2026-06-10T22:49:44.7639244Z         }
2026-06-10T22:49:44.7639326Z       }
2026-06-10T22:49:44.7639412Z     },
2026-06-10T22:49:44.7639498Z     {
2026-06-10T22:49:44.7639593Z       "id": "REQ-INFRA-1",
2026-06-10T22:49:44.7639774Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-10T22:49:44.7639874Z       "requiredStages": [],
2026-06-10T22:49:44.7639975Z       "stages": {
2026-06-10T22:49:44.7640056Z         "doc": {
2026-06-10T22:49:44.7640151Z           "complete": false,
2026-06-10T22:49:44.7640241Z           "evidence": []
2026-06-10T22:49:44.7640333Z         },
2026-06-10T22:49:44.7640422Z         "impl": {
2026-06-10T22:49:44.7640518Z           "complete": false,
2026-06-10T22:49:44.7640614Z           "evidence": []
2026-06-10T22:49:44.7640700Z         },
2026-06-10T22:49:44.7640795Z         "int": {
2026-06-10T22:49:44.7640890Z           "complete": false,
2026-06-10T22:49:44.7641089Z           "evidence": []
2026-06-10T22:49:44.7641171Z         },
2026-06-10T22:49:44.7641263Z         "unit": {
2026-06-10T22:49:44.7641362Z           "complete": false,
2026-06-10T22:49:44.7641452Z           "evidence": []
2026-06-10T22:49:44.7641542Z         }
2026-06-10T22:49:44.7641624Z       }
2026-06-10T22:49:44.7641717Z     },
2026-06-10T22:49:44.7641797Z     {
2026-06-10T22:49:44.7641897Z       "id": "REQ-INST-1",
2026-06-10T22:49:44.7642178Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-10T22:49:44.7642284Z       "requiredStages": [],
2026-06-10T22:49:44.7642379Z       "stages": {
2026-06-10T22:49:44.7642455Z         "doc": {
2026-06-10T22:49:44.7642556Z           "complete": false,
2026-06-10T22:49:44.7642646Z           "evidence": []
2026-06-10T22:49:44.7642731Z         },
2026-06-10T22:49:44.7642827Z         "impl": {
2026-06-10T22:49:44.7642919Z           "complete": false,
2026-06-10T22:49:44.7643018Z           "evidence": []
2026-06-10T22:49:44.7643094Z         },
2026-06-10T22:49:44.7643186Z         "int": {
2026-06-10T22:49:44.7643275Z           "complete": false,
2026-06-10T22:49:44.7643375Z           "evidence": []
2026-06-10T22:49:44.7643462Z         },
2026-06-10T22:49:44.7643539Z         "unit": {
2026-06-10T22:49:44.7643642Z           "complete": false,
2026-06-10T22:49:44.7643733Z           "evidence": []
2026-06-10T22:49:44.7643825Z         }
2026-06-10T22:49:44.7643905Z       }
2026-06-10T22:49:44.7644004Z     },
2026-06-10T22:49:44.7644089Z     {
2026-06-10T22:49:44.7644190Z       "id": "REQ-INST-10",
2026-06-10T22:49:44.7644392Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-10T22:49:44.7644484Z       "requiredStages": [
2026-06-10T22:49:44.7644575Z         "impl",
2026-06-10T22:49:44.7644664Z         "unit"
2026-06-10T22:49:44.7644755Z       ],
2026-06-10T22:49:44.7644851Z       "stages": {
2026-06-10T22:49:44.7644932Z         "doc": {
2026-06-10T22:49:44.7645036Z           "complete": false,
2026-06-10T22:49:44.7645133Z           "evidence": []
2026-06-10T22:49:44.7645228Z         },
2026-06-10T22:49:44.7645322Z         "impl": {
2026-06-10T22:49:44.7645419Z           "complete": true,
2026-06-10T22:49:44.7645504Z           "evidence": [
2026-06-10T22:49:44.7645585Z             {
2026-06-10T22:49:44.7645718Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7645814Z               "line": 600
2026-06-10T22:49:44.7645923Z             },
2026-06-10T22:49:44.7646004Z             {
2026-06-10T22:49:44.7646124Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7646223Z               "line": 677
2026-06-10T22:49:44.7646304Z             },
2026-06-10T22:49:44.7646397Z             {
2026-06-10T22:49:44.7646509Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-10T22:49:44.7646596Z               "line": 13
2026-06-10T22:49:44.7646673Z             },
2026-06-10T22:49:44.7646754Z             {
2026-06-10T22:49:44.7646876Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-10T22:49:44.7646971Z               "line": 67
2026-06-10T22:49:44.7647062Z             },
2026-06-10T22:49:44.7647139Z             {
2026-06-10T22:49:44.7647257Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.7647339Z               "line": 18
2026-06-10T22:49:44.7647434Z             },
2026-06-10T22:49:44.7647524Z             {
2026-06-10T22:49:44.7647629Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.7647725Z               "line": 444
2026-06-10T22:49:44.7647806Z             }
2026-06-10T22:49:44.7647895Z           ]
2026-06-10T22:49:44.7647973Z         },
2026-06-10T22:49:44.7648073Z         "int": {
2026-06-10T22:49:44.7648173Z           "complete": false,
2026-06-10T22:49:44.7648264Z           "evidence": []
2026-06-10T22:49:44.7648355Z         },
2026-06-10T22:49:44.7648444Z         "unit": {
2026-06-10T22:49:44.7648539Z           "complete": true,
2026-06-10T22:49:44.7648632Z           "evidence": [
2026-06-10T22:49:44.7648797Z             {
2026-06-10T22:49:44.7648932Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7649107Z               "line": 883
2026-06-10T22:49:44.7649197Z             },
2026-06-10T22:49:44.7649278Z             {
2026-06-10T22:49:44.7649400Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7649495Z               "line": 1212
2026-06-10T22:49:44.7649586Z             },
2026-06-10T22:49:44.7649776Z             {
2026-06-10T22:49:44.7649901Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7649991Z               "line": 1223
2026-06-10T22:49:44.7650077Z             },
2026-06-10T22:49:44.7650167Z             {
2026-06-10T22:49:44.7650288Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7650382Z               "line": 1239
2026-06-10T22:49:44.7650482Z             },
2026-06-10T22:49:44.7650569Z             {
2026-06-10T22:49:44.7650692Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7650787Z               "line": 1255
2026-06-10T22:49:44.7650883Z             },
2026-06-10T22:49:44.7650969Z             {
2026-06-10T22:49:44.7651097Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7651189Z               "line": 1277
2026-06-10T22:49:44.7651279Z             },
2026-06-10T22:49:44.7651365Z             {
2026-06-10T22:49:44.7651490Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7651584Z               "line": 1582
2026-06-10T22:49:44.7651674Z             },
2026-06-10T22:49:44.7651770Z             {
2026-06-10T22:49:44.7651890Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-10T22:49:44.7651978Z               "line": 130
2026-06-10T22:49:44.7652073Z             },
2026-06-10T22:49:44.7652159Z             {
2026-06-10T22:49:44.7652277Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-10T22:49:44.7652371Z               "line": 167
2026-06-10T22:49:44.7652462Z             },
2026-06-10T22:49:44.7652558Z             {
2026-06-10T22:49:44.7652672Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-10T22:49:44.7652768Z               "line": 175
2026-06-10T22:49:44.7652854Z             },
2026-06-10T22:49:44.7652949Z             {
2026-06-10T22:49:44.7653063Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-10T22:49:44.7653155Z               "line": 183
2026-06-10T22:49:44.7653245Z             },
2026-06-10T22:49:44.7653339Z             {
2026-06-10T22:49:44.7653455Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.7653544Z               "line": 895
2026-06-10T22:49:44.7653630Z             }
2026-06-10T22:49:44.7653727Z           ]
2026-06-10T22:49:44.7653817Z         }
2026-06-10T22:49:44.7655811Z       }
2026-06-10T22:49:44.7655925Z     },
2026-06-10T22:49:44.7656022Z     {
2026-06-10T22:49:44.7656126Z       "id": "REQ-INST-11",
2026-06-10T22:49:44.7656351Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-10T22:49:44.7656460Z       "requiredStages": [
2026-06-10T22:49:44.7656550Z         "impl",
2026-06-10T22:49:44.7656642Z         "unit"
2026-06-10T22:49:44.7656731Z       ],
2026-06-10T22:49:44.7656822Z       "stages": {
2026-06-10T22:49:44.7656914Z         "doc": {
2026-06-10T22:49:44.7657018Z           "complete": false,
2026-06-10T22:49:44.7657108Z           "evidence": []
2026-06-10T22:49:44.7657194Z         },
2026-06-10T22:49:44.7657296Z         "impl": {
2026-06-10T22:49:44.7657389Z           "complete": true,
2026-06-10T22:49:44.7657488Z           "evidence": [
2026-06-10T22:49:44.7657579Z             {
2026-06-10T22:49:44.7657718Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7657812Z               "line": 466
2026-06-10T22:49:44.7657889Z             },
2026-06-10T22:49:44.7657990Z             {
2026-06-10T22:49:44.7658118Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7658214Z               "line": 265
2026-06-10T22:49:44.7658428Z             },
2026-06-10T22:49:44.7658523Z             {
2026-06-10T22:49:44.7658648Z               "path": "crates/spt-store/src/rename.rs",
2026-06-10T22:49:44.7658737Z               "line": 59
2026-06-10T22:49:44.7658824Z             },
2026-06-10T22:49:44.7658901Z             {
2026-06-10T22:49:44.7659109Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7659206Z               "line": 4061
2026-06-10T22:49:44.7659396Z             },
2026-06-10T22:49:44.7659487Z             {
2026-06-10T22:49:44.7659592Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7659686Z               "line": 5160
2026-06-10T22:49:44.7659776Z             }
2026-06-10T22:49:44.7659871Z           ]
2026-06-10T22:49:44.7659960Z         },
2026-06-10T22:49:44.7660041Z         "int": {
2026-06-10T22:49:44.7660127Z           "complete": false,
2026-06-10T22:49:44.7660223Z           "evidence": []
2026-06-10T22:49:44.7660313Z         },
2026-06-10T22:49:44.7660403Z         "unit": {
2026-06-10T22:49:44.7660509Z           "complete": true,
2026-06-10T22:49:44.7660604Z           "evidence": [
2026-06-10T22:49:44.7660698Z             {
2026-06-10T22:49:44.7660819Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7660914Z               "line": 1382
2026-06-10T22:49:44.7661003Z             },
2026-06-10T22:49:44.7661096Z             {
2026-06-10T22:49:44.7661219Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7661304Z               "line": 1415
2026-06-10T22:49:44.7661395Z             },
2026-06-10T22:49:44.7661482Z             {
2026-06-10T22:49:44.7661610Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7661705Z               "line": 495
2026-06-10T22:49:44.7661801Z             },
2026-06-10T22:49:44.7661895Z             {
2026-06-10T22:49:44.7662011Z               "path": "crates/spt-store/src/rename.rs",
2026-06-10T22:49:44.7662106Z               "line": 160
2026-06-10T22:49:44.7662201Z             },
2026-06-10T22:49:44.7662286Z             {
2026-06-10T22:49:44.7662407Z               "path": "crates/spt-store/src/rename.rs",
2026-06-10T22:49:44.7662497Z               "line": 190
2026-06-10T22:49:44.7662586Z             },
2026-06-10T22:49:44.7662667Z             {
2026-06-10T22:49:44.7662781Z               "path": "crates/spt-store/src/rename.rs",
2026-06-10T22:49:44.7662875Z               "line": 225
2026-06-10T22:49:44.7662960Z             },
2026-06-10T22:49:44.7663051Z             {
2026-06-10T22:49:44.7663161Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7663260Z               "line": 5400
2026-06-10T22:49:44.7663347Z             }
2026-06-10T22:49:44.7663442Z           ]
2026-06-10T22:49:44.7663537Z         }
2026-06-10T22:49:44.7663623Z       }
2026-06-10T22:49:44.7663705Z     },
2026-06-10T22:49:44.7663786Z     {
2026-06-10T22:49:44.7663885Z       "id": "REQ-INST-12",
2026-06-10T22:49:44.7664172Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-10T22:49:44.7664282Z       "requiredStages": [
2026-06-10T22:49:44.7664378Z         "impl",
2026-06-10T22:49:44.7664467Z         "unit"
2026-06-10T22:49:44.7664558Z       ],
2026-06-10T22:49:44.7664654Z       "stages": {
2026-06-10T22:49:44.7664739Z         "doc": {
2026-06-10T22:49:44.7664839Z           "complete": false,
2026-06-10T22:49:44.7664940Z           "evidence": []
2026-06-10T22:49:44.7665031Z         },
2026-06-10T22:49:44.7665119Z         "impl": {
2026-06-10T22:49:44.7665224Z           "complete": true,
2026-06-10T22:49:44.7665315Z           "evidence": [
2026-06-10T22:49:44.7665408Z             {
2026-06-10T22:49:44.7665522Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7665623Z               "line": 518
2026-06-10T22:49:44.7665719Z             },
2026-06-10T22:49:44.7665808Z             {
2026-06-10T22:49:44.7665929Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7666123Z               "line": 611
2026-06-10T22:49:44.7666205Z             },
2026-06-10T22:49:44.7666291Z             {
2026-06-10T22:49:44.7666399Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7666495Z               "line": 691
2026-06-10T22:49:44.7666587Z             },
2026-06-10T22:49:44.7666676Z             {
2026-06-10T22:49:44.7666791Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7666958Z               "line": 96
2026-06-10T22:49:44.7667048Z             },
2026-06-10T22:49:44.7667134Z             {
2026-06-10T22:49:44.7667245Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7667339Z               "line": 269
2026-06-10T22:49:44.7667420Z             },
2026-06-10T22:49:44.7667502Z             {
2026-06-10T22:49:44.7667625Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T22:49:44.7667721Z               "line": 135
2026-06-10T22:49:44.7667808Z             }
2026-06-10T22:49:44.7667912Z           ]
2026-06-10T22:49:44.7668001Z         },
2026-06-10T22:49:44.7668091Z         "int": {
2026-06-10T22:49:44.7668183Z           "complete": false,
2026-06-10T22:49:44.7668278Z           "evidence": []
2026-06-10T22:49:44.7668373Z         },
2026-06-10T22:49:44.7668464Z         "unit": {
2026-06-10T22:49:44.7668554Z           "complete": true,
2026-06-10T22:49:44.7668649Z           "evidence": [
2026-06-10T22:49:44.7668730Z             {
2026-06-10T22:49:44.7668845Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7669021Z               "line": 1457
2026-06-10T22:49:44.7669103Z             },
2026-06-10T22:49:44.7669193Z             {
2026-06-10T22:49:44.7669317Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7669413Z               "line": 1480
2026-06-10T22:49:44.7669513Z             },
2026-06-10T22:49:44.7669598Z             {
2026-06-10T22:49:44.7669728Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7669851Z               "line": 1517
2026-06-10T22:49:44.7669937Z             },
2026-06-10T22:49:44.7670028Z             {
2026-06-10T22:49:44.7670142Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7670237Z               "line": 457
2026-06-10T22:49:44.7670326Z             },
2026-06-10T22:49:44.7670418Z             {
2026-06-10T22:49:44.7670539Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T22:49:44.7670639Z               "line": 172
2026-06-10T22:49:44.7670730Z             },
2026-06-10T22:49:44.7670817Z             {
2026-06-10T22:49:44.7670939Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T22:49:44.7671035Z               "line": 193
2026-06-10T22:49:44.7671126Z             },
2026-06-10T22:49:44.7671216Z             {
2026-06-10T22:49:44.7671336Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T22:49:44.7671431Z               "line": 219
2026-06-10T22:49:44.7671516Z             }
2026-06-10T22:49:44.7671617Z           ]
2026-06-10T22:49:44.7671708Z         }
2026-06-10T22:49:44.7671798Z       }
2026-06-10T22:49:44.7671888Z     },
2026-06-10T22:49:44.7671980Z     {
2026-06-10T22:49:44.7672074Z       "id": "REQ-INST-13",
2026-06-10T22:49:44.7672261Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-10T22:49:44.7672361Z       "requiredStages": [
2026-06-10T22:49:44.7672456Z         "impl",
2026-06-10T22:49:44.7672551Z         "unit"
2026-06-10T22:49:44.7672652Z       ],
2026-06-10T22:49:44.7672746Z       "stages": {
2026-06-10T22:49:44.7672838Z         "doc": {
2026-06-10T22:49:44.7672934Z           "complete": false,
2026-06-10T22:49:44.7673033Z           "evidence": []
2026-06-10T22:49:44.7673123Z         },
2026-06-10T22:49:44.7673222Z         "impl": {
2026-06-10T22:49:44.7673322Z           "complete": true,
2026-06-10T22:49:44.7673416Z           "evidence": [
2026-06-10T22:49:44.7673506Z             {
2026-06-10T22:49:44.7673626Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.7673845Z               "line": 100
2026-06-10T22:49:44.7673931Z             },
2026-06-10T22:49:44.7674027Z             {
2026-06-10T22:49:44.7674149Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T22:49:44.7674246Z               "line": 158
2026-06-10T22:49:44.7674336Z             }
2026-06-10T22:49:44.7674422Z           ]
2026-06-10T22:49:44.7674498Z         },
2026-06-10T22:49:44.7674689Z         "int": {
2026-06-10T22:49:44.7674789Z           "complete": false,
2026-06-10T22:49:44.7674885Z           "evidence": []
2026-06-10T22:49:44.7674975Z         },
2026-06-10T22:49:44.7675089Z         "unit": {
2026-06-10T22:49:44.7675191Z           "complete": true,
2026-06-10T22:49:44.7675290Z           "evidence": [
2026-06-10T22:49:44.7675376Z             {
2026-06-10T22:49:44.7675501Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T22:49:44.7675600Z               "line": 248
2026-06-10T22:49:44.7675684Z             },
2026-06-10T22:49:44.7675784Z             {
2026-06-10T22:49:44.7675903Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T22:49:44.7675997Z               "line": 266
2026-06-10T22:49:44.7676087Z             }
2026-06-10T22:49:44.7676183Z           ]
2026-06-10T22:49:44.7676270Z         }
2026-06-10T22:49:44.7676359Z       }
2026-06-10T22:49:44.7676450Z     },
2026-06-10T22:49:44.7676536Z     {
2026-06-10T22:49:44.7676640Z       "id": "REQ-INST-14",
2026-06-10T22:49:44.7677007Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-10T22:49:44.7677113Z       "requiredStages": [
2026-06-10T22:49:44.7677208Z         "doc",
2026-06-10T22:49:44.7677293Z         "impl",
2026-06-10T22:49:44.7677389Z         "unit"
2026-06-10T22:49:44.7677476Z       ],
2026-06-10T22:49:44.7677571Z       "stages": {
2026-06-10T22:49:44.7677661Z         "doc": {
2026-06-10T22:49:44.7677762Z           "complete": true,
2026-06-10T22:49:44.7677870Z           "evidence": [
2026-06-10T22:49:44.7677961Z             {
2026-06-10T22:49:44.7678067Z               "path": "CONTEXT.md",
2026-06-10T22:49:44.7678162Z               "line": 425
2026-06-10T22:49:44.7678252Z             },
2026-06-10T22:49:44.7678339Z             {
2026-06-10T22:49:44.7678449Z               "path": "docs/STORAGE.md",
2026-06-10T22:49:44.7678542Z               "line": 49
2026-06-10T22:49:44.7678632Z             }
2026-06-10T22:49:44.7678733Z           ]
2026-06-10T22:49:44.7678820Z         },
2026-06-10T22:49:44.7678914Z         "impl": {
2026-06-10T22:49:44.7679096Z           "complete": true,
2026-06-10T22:49:44.7679195Z           "evidence": [
2026-06-10T22:49:44.7679295Z             {
2026-06-10T22:49:44.7679429Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7679524Z               "line": 388
2026-06-10T22:49:44.7679615Z             },
2026-06-10T22:49:44.7679707Z             {
2026-06-10T22:49:44.7679829Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7679939Z               "line": 330
2026-06-10T22:49:44.7680031Z             },
2026-06-10T22:49:44.7680120Z             {
2026-06-10T22:49:44.7680239Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7680331Z               "line": 211
2026-06-10T22:49:44.7680416Z             },
2026-06-10T22:49:44.7680506Z             {
2026-06-10T22:49:44.7680617Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7680712Z               "line": 1038
2026-06-10T22:49:44.7680801Z             }
2026-06-10T22:49:44.7680886Z           ]
2026-06-10T22:49:44.7680963Z         },
2026-06-10T22:49:44.7681057Z         "int": {
2026-06-10T22:49:44.7681156Z           "complete": false,
2026-06-10T22:49:44.7681247Z           "evidence": []
2026-06-10T22:49:44.7681338Z         },
2026-06-10T22:49:44.7681443Z         "unit": {
2026-06-10T22:49:44.7681548Z           "complete": true,
2026-06-10T22:49:44.7681639Z           "evidence": [
2026-06-10T22:49:44.7681837Z             {
2026-06-10T22:49:44.7681968Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7682062Z               "line": 1081
2026-06-10T22:49:44.7682152Z             },
2026-06-10T22:49:44.7682245Z             {
2026-06-10T22:49:44.7682368Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7682458Z               "line": 895
2026-06-10T22:49:44.7682550Z             },
2026-06-10T22:49:44.7682735Z             {
2026-06-10T22:49:44.7682860Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7682963Z               "line": 1153
2026-06-10T22:49:44.7683050Z             },
2026-06-10T22:49:44.7683141Z             {
2026-06-10T22:49:44.7683255Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7683350Z               "line": 463
2026-06-10T22:49:44.7683441Z             },
2026-06-10T22:49:44.7683533Z             {
2026-06-10T22:49:44.7683640Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7683739Z               "line": 5476
2026-06-10T22:49:44.7683835Z             }
2026-06-10T22:49:44.7683924Z           ]
2026-06-10T22:49:44.7684014Z         }
2026-06-10T22:49:44.7684105Z       }
2026-06-10T22:49:44.7684191Z     },
2026-06-10T22:49:44.7684281Z     {
2026-06-10T22:49:44.7684376Z       "id": "REQ-INST-15",
2026-06-10T22:49:44.7685049Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-10T22:49:44.7685159Z       "requiredStages": [
2026-06-10T22:49:44.7685249Z         "doc",
2026-06-10T22:49:44.7685363Z         "impl",
2026-06-10T22:49:44.7685464Z         "unit"
2026-06-10T22:49:44.7685559Z       ],
2026-06-10T22:49:44.7685649Z       "stages": {
2026-06-10T22:49:44.7685742Z         "doc": {
2026-06-10T22:49:44.7685836Z           "complete": true,
2026-06-10T22:49:44.7685941Z           "evidence": [
2026-06-10T22:49:44.7686032Z             {
2026-06-10T22:49:44.7686207Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-10T22:49:44.7686301Z               "line": 3
2026-06-10T22:49:44.7686393Z             }
2026-06-10T22:49:44.7686482Z           ]
2026-06-10T22:49:44.7686576Z         },
2026-06-10T22:49:44.7686666Z         "impl": {
2026-06-10T22:49:44.7686772Z           "complete": true,
2026-06-10T22:49:44.7686862Z           "evidence": [
2026-06-10T22:49:44.7686957Z             {
2026-06-10T22:49:44.7687087Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7687187Z               "line": 337
2026-06-10T22:49:44.7687277Z             },
2026-06-10T22:49:44.7687363Z             {
2026-06-10T22:49:44.7687482Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T22:49:44.7687572Z               "line": 60
2026-06-10T22:49:44.7687669Z             },
2026-06-10T22:49:44.7687764Z             {
2026-06-10T22:49:44.7687901Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7687998Z               "line": 336
2026-06-10T22:49:44.7688088Z             },
2026-06-10T22:49:44.7688178Z             {
2026-06-10T22:49:44.7688303Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7688402Z               "line": 385
2026-06-10T22:49:44.7688489Z             },
2026-06-10T22:49:44.7688594Z             {
2026-06-10T22:49:44.7688708Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T22:49:44.7688803Z               "line": 19
2026-06-10T22:49:44.7688894Z             },
2026-06-10T22:49:44.7689070Z             {
2026-06-10T22:49:44.7689183Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T22:49:44.7689279Z               "line": 70
2026-06-10T22:49:44.7689371Z             },
2026-06-10T22:49:44.7689464Z             {
2026-06-10T22:49:44.7689575Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T22:49:44.7689774Z               "line": 96
2026-06-10T22:49:44.7689865Z             },
2026-06-10T22:49:44.7689961Z             {
2026-06-10T22:49:44.7690070Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T22:49:44.7690165Z               "line": 121
2026-06-10T22:49:44.7690262Z             },
2026-06-10T22:49:44.7690351Z             {
2026-06-10T22:49:44.7690466Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T22:49:44.7690656Z               "line": 172
2026-06-10T22:49:44.7690747Z             },
2026-06-10T22:49:44.7690834Z             {
2026-06-10T22:49:44.7690957Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.7691052Z               "line": 143
2026-06-10T22:49:44.7691138Z             },
2026-06-10T22:49:44.7691230Z             {
2026-06-10T22:49:44.7691333Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7691432Z               "line": 930
2026-06-10T22:49:44.7691523Z             }
2026-06-10T22:49:44.7691622Z           ]
2026-06-10T22:49:44.7691717Z         },
2026-06-10T22:49:44.7691812Z         "int": {
2026-06-10T22:49:44.7691908Z           "complete": false,
2026-06-10T22:49:44.7692003Z           "evidence": []
2026-06-10T22:49:44.7692083Z         },
2026-06-10T22:49:44.7692170Z         "unit": {
2026-06-10T22:49:44.7692261Z           "complete": true,
2026-06-10T22:49:44.7692355Z           "evidence": [
2026-06-10T22:49:44.7692432Z             {
2026-06-10T22:49:44.7692561Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7692646Z               "line": 545
2026-06-10T22:49:44.7692742Z             },
2026-06-10T22:49:44.7692814Z             {
2026-06-10T22:49:44.7692942Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.7693037Z               "line": 606
2026-06-10T22:49:44.7693115Z             },
2026-06-10T22:49:44.7693209Z             {
2026-06-10T22:49:44.7693314Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T22:49:44.7693420Z               "line": 213
2026-06-10T22:49:44.7693505Z             },
2026-06-10T22:49:44.7693590Z             {
2026-06-10T22:49:44.7693711Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T22:49:44.7693797Z               "line": 249
2026-06-10T22:49:44.7693890Z             },
2026-06-10T22:49:44.7693977Z             {
2026-06-10T22:49:44.7694088Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T22:49:44.7694186Z               "line": 262
2026-06-10T22:49:44.7694267Z             },
2026-06-10T22:49:44.7694357Z             {
2026-06-10T22:49:44.7694457Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T22:49:44.7694550Z               "line": 338
2026-06-10T22:49:44.7694626Z             },
2026-06-10T22:49:44.7694722Z             {
2026-06-10T22:49:44.7694837Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.7694917Z               "line": 496
2026-06-10T22:49:44.7695008Z             },
2026-06-10T22:49:44.7695095Z             {
2026-06-10T22:49:44.7695208Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7695294Z               "line": 5413
2026-06-10T22:49:44.7695371Z             },
2026-06-10T22:49:44.7695466Z             {
2026-06-10T22:49:44.7695566Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7695662Z               "line": 6806
2026-06-10T22:49:44.7695738Z             }
2026-06-10T22:49:44.7695833Z           ]
2026-06-10T22:49:44.7695919Z         }
2026-06-10T22:49:44.7696011Z       }
2026-06-10T22:49:44.7696100Z     },
2026-06-10T22:49:44.7696176Z     {
2026-06-10T22:49:44.7696277Z       "id": "REQ-INST-2",
2026-06-10T22:49:44.7696401Z       "title": "Per-node files, synced Psyche mind",
2026-06-10T22:49:44.7696501Z       "requiredStages": [
2026-06-10T22:49:44.7696583Z         "impl",
2026-06-10T22:49:44.7696673Z         "unit"
2026-06-10T22:49:44.7696753Z       ],
2026-06-10T22:49:44.7696833Z       "stages": {
2026-06-10T22:49:44.7696928Z         "doc": {
2026-06-10T22:49:44.7697023Z           "complete": false,
2026-06-10T22:49:44.7697193Z           "evidence": []
2026-06-10T22:49:44.7697289Z         },
2026-06-10T22:49:44.7697376Z         "impl": {
2026-06-10T22:49:44.7697474Z           "complete": true,
2026-06-10T22:49:44.7697570Z           "evidence": [
2026-06-10T22:49:44.7697657Z             {
2026-06-10T22:49:44.7697780Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7697875Z               "line": 88
2026-06-10T22:49:44.7698038Z             },
2026-06-10T22:49:44.7698132Z             {
2026-06-10T22:49:44.7698252Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T22:49:44.7698338Z               "line": 28
2026-06-10T22:49:44.7698433Z             },
2026-06-10T22:49:44.7698519Z             {
2026-06-10T22:49:44.7698634Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T22:49:44.7698715Z               "line": 74
2026-06-10T22:49:44.7698805Z             },
2026-06-10T22:49:44.7698896Z             {
2026-06-10T22:49:44.7699091Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T22:49:44.7699221Z               "line": 96
2026-06-10T22:49:44.7699348Z             },
2026-06-10T22:49:44.7699435Z             {
2026-06-10T22:49:44.7699555Z               "path": "crates/spt-live/src/resume.rs",
2026-06-10T22:49:44.7699653Z               "line": 81
2026-06-10T22:49:44.7699743Z             },
2026-06-10T22:49:44.7699834Z             {
2026-06-10T22:49:44.7699963Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T22:49:44.7700058Z               "line": 118
2026-06-10T22:49:44.7700149Z             }
2026-06-10T22:49:44.7700235Z           ]
2026-06-10T22:49:44.7700330Z         },
2026-06-10T22:49:44.7700425Z         "int": {
2026-06-10T22:49:44.7700522Z           "complete": false,
2026-06-10T22:49:44.7700621Z           "evidence": []
2026-06-10T22:49:44.7700706Z         },
2026-06-10T22:49:44.7700798Z         "unit": {
2026-06-10T22:49:44.7700897Z           "complete": true,
2026-06-10T22:49:44.7700992Z           "evidence": [
2026-06-10T22:49:44.7701089Z             {
2026-06-10T22:49:44.7701198Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T22:49:44.7701298Z               "line": 212
2026-06-10T22:49:44.7701384Z             },
2026-06-10T22:49:44.7701475Z             {
2026-06-10T22:49:44.7701588Z               "path": "crates/spt-live/src/resume.rs",
2026-06-10T22:49:44.7701685Z               "line": 258
2026-06-10T22:49:44.7701781Z             }
2026-06-10T22:49:44.7701870Z           ]
2026-06-10T22:49:44.7701960Z         }
2026-06-10T22:49:44.7702050Z       }
2026-06-10T22:49:44.7702141Z     },
2026-06-10T22:49:44.7702229Z     {
2026-06-10T22:49:44.7702328Z       "id": "REQ-INST-3",
2026-06-10T22:49:44.7702488Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-10T22:49:44.7702586Z       "requiredStages": [
2026-06-10T22:49:44.7702687Z         "doc",
2026-06-10T22:49:44.7702773Z         "impl",
2026-06-10T22:49:44.7702868Z         "unit"
2026-06-10T22:49:44.7702958Z       ],
2026-06-10T22:49:44.7703050Z       "stages": {
2026-06-10T22:49:44.7703140Z         "doc": {
2026-06-10T22:49:44.7703235Z           "complete": true,
2026-06-10T22:49:44.7703331Z           "evidence": [
2026-06-10T22:49:44.7703421Z             {
2026-06-10T22:49:44.7703544Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-10T22:49:44.7703631Z               "line": 3
2026-06-10T22:49:44.7703727Z             }
2026-06-10T22:49:44.7703827Z           ]
2026-06-10T22:49:44.7703917Z         },
2026-06-10T22:49:44.7704009Z         "impl": {
2026-06-10T22:49:44.7704103Z           "complete": true,
2026-06-10T22:49:44.7704198Z           "evidence": [
2026-06-10T22:49:44.7704285Z             {
2026-06-10T22:49:44.7704417Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-10T22:49:44.7704513Z               "line": 70
2026-06-10T22:49:44.7704605Z             },
2026-06-10T22:49:44.7704695Z             {
2026-06-10T22:49:44.7704822Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.7705045Z               "line": 480
2026-06-10T22:49:44.7705130Z             },
2026-06-10T22:49:44.7705225Z             {
2026-06-10T22:49:44.7705350Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7705444Z               "line": 204
2026-06-10T22:49:44.7705534Z             },
2026-06-10T22:49:44.7705622Z             {
2026-06-10T22:49:44.7705749Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7705941Z               "line": 334
2026-06-10T22:49:44.7706032Z             },
2026-06-10T22:49:44.7706131Z             {
2026-06-10T22:49:44.7706251Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7706345Z               "line": 368
2026-06-10T22:49:44.7706436Z             },
2026-06-10T22:49:44.7706527Z             {
2026-06-10T22:49:44.7706650Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7706751Z               "line": 341
2026-06-10T22:49:44.7706842Z             },
2026-06-10T22:49:44.7706942Z             {
2026-06-10T22:49:44.7707080Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7707176Z               "line": 218
2026-06-10T22:49:44.7707266Z             },
2026-06-10T22:49:44.7707360Z             {
2026-06-10T22:49:44.7707484Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7707588Z               "line": 374
2026-06-10T22:49:44.7707687Z             },
2026-06-10T22:49:44.7707777Z             {
2026-06-10T22:49:44.7707897Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7708002Z               "line": 45
2026-06-10T22:49:44.7708092Z             },
2026-06-10T22:49:44.7708188Z             {
2026-06-10T22:49:44.7708311Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7708402Z               "line": 114
2026-06-10T22:49:44.7708493Z             },
2026-06-10T22:49:44.7708579Z             {
2026-06-10T22:49:44.7708702Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7708799Z               "line": 152
2026-06-10T22:49:44.7708888Z             },
2026-06-10T22:49:44.7709089Z             {
2026-06-10T22:49:44.7709208Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7709308Z               "line": 168
2026-06-10T22:49:44.7709394Z             },
2026-06-10T22:49:44.7709471Z             {
2026-06-10T22:49:44.7709579Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7709680Z               "line": 178
2026-06-10T22:49:44.7709772Z             },
2026-06-10T22:49:44.7709856Z             {
2026-06-10T22:49:44.7709980Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7710073Z               "line": 210
2026-06-10T22:49:44.7710166Z             },
2026-06-10T22:49:44.7710251Z             {
2026-06-10T22:49:44.7710360Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7710452Z               "line": 287
2026-06-10T22:49:44.7710547Z             },
2026-06-10T22:49:44.7710637Z             {
2026-06-10T22:49:44.7710753Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7710848Z               "line": 311
2026-06-10T22:49:44.7710937Z             },
2026-06-10T22:49:44.7711025Z             {
2026-06-10T22:49:44.7711138Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7711233Z               "line": 387
2026-06-10T22:49:44.7711329Z             },
2026-06-10T22:49:44.7711415Z             {
2026-06-10T22:49:44.7711534Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7711634Z               "line": 436
2026-06-10T22:49:44.7711725Z             },
2026-06-10T22:49:44.7711815Z             {
2026-06-10T22:49:44.7711939Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-10T22:49:44.7712035Z               "line": 37
2026-06-10T22:49:44.7712125Z             },
2026-06-10T22:49:44.7712215Z             {
2026-06-10T22:49:44.7712341Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7712539Z               "line": 62
2026-06-10T22:49:44.7712634Z             },
2026-06-10T22:49:44.7712724Z             {
2026-06-10T22:49:44.7712842Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7712942Z               "line": 190
2026-06-10T22:49:44.7713028Z             },
2026-06-10T22:49:44.7713118Z             {
2026-06-10T22:49:44.7713228Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7713424Z               "line": 1186
2026-06-10T22:49:44.7713514Z             }
2026-06-10T22:49:44.7713601Z           ]
2026-06-10T22:49:44.7713695Z         },
2026-06-10T22:49:44.7713781Z         "int": {
2026-06-10T22:49:44.7713882Z           "complete": false,
2026-06-10T22:49:44.7713977Z           "evidence": []
2026-06-10T22:49:44.7714072Z         },
2026-06-10T22:49:44.7714167Z         "unit": {
2026-06-10T22:49:44.7714268Z           "complete": true,
2026-06-10T22:49:44.7714363Z           "evidence": [
2026-06-10T22:49:44.7714458Z             {
2026-06-10T22:49:44.7714583Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T22:49:44.7714677Z               "line": 360
2026-06-10T22:49:44.7714768Z             },
2026-06-10T22:49:44.7714850Z             {
2026-06-10T22:49:44.7714982Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7715073Z               "line": 787
2026-06-10T22:49:44.7715170Z             },
2026-06-10T22:49:44.7715260Z             {
2026-06-10T22:49:44.7715377Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7715478Z               "line": 844
2026-06-10T22:49:44.7715568Z             },
2026-06-10T22:49:44.7715661Z             {
2026-06-10T22:49:44.7715790Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7715881Z               "line": 1182
2026-06-10T22:49:44.7715976Z             },
2026-06-10T22:49:44.7716061Z             {
2026-06-10T22:49:44.7716191Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7716291Z               "line": 1322
2026-06-10T22:49:44.7716386Z             },
2026-06-10T22:49:44.7716482Z             {
2026-06-10T22:49:44.7716597Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7716691Z               "line": 447
2026-06-10T22:49:44.7716777Z             },
2026-06-10T22:49:44.7716868Z             {
2026-06-10T22:49:44.7716986Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7717083Z               "line": 483
2026-06-10T22:49:44.7717173Z             },
2026-06-10T22:49:44.7717263Z             {
2026-06-10T22:49:44.7717378Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7717474Z               "line": 538
2026-06-10T22:49:44.7717563Z             },
2026-06-10T22:49:44.7717650Z             {
2026-06-10T22:49:44.7717770Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7717864Z               "line": 695
2026-06-10T22:49:44.7717958Z             },
2026-06-10T22:49:44.7718058Z             {
2026-06-10T22:49:44.7718171Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7718266Z               "line": 929
2026-06-10T22:49:44.7718357Z             },
2026-06-10T22:49:44.7718443Z             {
2026-06-10T22:49:44.7718562Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7718652Z               "line": 943
2026-06-10T22:49:44.7718753Z             },
2026-06-10T22:49:44.7718839Z             {
2026-06-10T22:49:44.7719054Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7719144Z               "line": 1193
2026-06-10T22:49:44.7719238Z             },
2026-06-10T22:49:44.7719330Z             {
2026-06-10T22:49:44.7719444Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.7719543Z               "line": 413
2026-06-10T22:49:44.7719630Z             },
2026-06-10T22:49:44.7719725Z             {
2026-06-10T22:49:44.7719835Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7720031Z               "line": 5437
2026-06-10T22:49:44.7720130Z             }
2026-06-10T22:49:44.7720216Z           ]
2026-06-10T22:49:44.7720308Z         }
2026-06-10T22:49:44.7720393Z       }
2026-06-10T22:49:44.7720483Z     },
2026-06-10T22:49:44.7720580Z     {
2026-06-10T22:49:44.7720675Z       "id": "REQ-INST-4",
2026-06-10T22:49:44.7720853Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-10T22:49:44.7721051Z       "requiredStages": [
2026-06-10T22:49:44.7721145Z         "impl",
2026-06-10T22:49:44.7721235Z         "unit"
2026-06-10T22:49:44.7721332Z       ],
2026-06-10T22:49:44.7721426Z       "stages": {
2026-06-10T22:49:44.7721511Z         "doc": {
2026-06-10T22:49:44.7721613Z           "complete": false,
2026-06-10T22:49:44.7721703Z           "evidence": []
2026-06-10T22:49:44.7721798Z         },
2026-06-10T22:49:44.7721884Z         "impl": {
2026-06-10T22:49:44.7721980Z           "complete": true,
2026-06-10T22:49:44.7722070Z           "evidence": [
2026-06-10T22:49:44.7722160Z             {
2026-06-10T22:49:44.7722290Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7722380Z               "line": 335
2026-06-10T22:49:44.7722470Z             },
2026-06-10T22:49:44.7722548Z             {
2026-06-10T22:49:44.7722661Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7724632Z               "line": 202
2026-06-10T22:49:44.7724756Z             },
2026-06-10T22:49:44.7724843Z             {
2026-06-10T22:49:44.7724966Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7725052Z               "line": 234
2026-06-10T22:49:44.7725143Z             },
2026-06-10T22:49:44.7725233Z             {
2026-06-10T22:49:44.7725357Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7725444Z               "line": 274
2026-06-10T22:49:44.7725538Z             }
2026-06-10T22:49:44.7725624Z           ]
2026-06-10T22:49:44.7725711Z         },
2026-06-10T22:49:44.7725797Z         "int": {
2026-06-10T22:49:44.7725895Z           "complete": false,
2026-06-10T22:49:44.7725990Z           "evidence": []
2026-06-10T22:49:44.7726076Z         },
2026-06-10T22:49:44.7726161Z         "unit": {
2026-06-10T22:49:44.7726259Z           "complete": true,
2026-06-10T22:49:44.7726355Z           "evidence": [
2026-06-10T22:49:44.7726442Z             {
2026-06-10T22:49:44.7726574Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.7726669Z               "line": 839
2026-06-10T22:49:44.7726766Z             },
2026-06-10T22:49:44.7726856Z             {
2026-06-10T22:49:44.7726979Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7727071Z               "line": 559
2026-06-10T22:49:44.7727162Z             },
2026-06-10T22:49:44.7727251Z             {
2026-06-10T22:49:44.7727376Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7727465Z               "line": 666
2026-06-10T22:49:44.7727570Z             },
2026-06-10T22:49:44.7727657Z             {
2026-06-10T22:49:44.7727775Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7727871Z               "line": 748
2026-06-10T22:49:44.7727963Z             }
2026-06-10T22:49:44.7728053Z           ]
2026-06-10T22:49:44.7728142Z         }
2026-06-10T22:49:44.7728239Z       }
2026-06-10T22:49:44.7728321Z     },
2026-06-10T22:49:44.7728419Z     {
2026-06-10T22:49:44.7728514Z       "id": "REQ-INST-5",
2026-06-10T22:49:44.7728700Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-10T22:49:44.7728797Z       "requiredStages": [
2026-06-10T22:49:44.7728887Z         "impl",
2026-06-10T22:49:44.7729079Z         "unit",
2026-06-10T22:49:44.7729174Z         "int"
2026-06-10T22:49:44.7729260Z       ],
2026-06-10T22:49:44.7729351Z       "stages": {
2026-06-10T22:49:44.7729441Z         "doc": {
2026-06-10T22:49:44.7729541Z           "complete": false,
2026-06-10T22:49:44.7729774Z           "evidence": []
2026-06-10T22:49:44.7729866Z         },
2026-06-10T22:49:44.7729962Z         "impl": {
2026-06-10T22:49:44.7730061Z           "complete": true,
2026-06-10T22:49:44.7730152Z           "evidence": [
2026-06-10T22:49:44.7730244Z             {
2026-06-10T22:49:44.7730372Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7730462Z               "line": 41
2026-06-10T22:49:44.7730553Z             },
2026-06-10T22:49:44.7730757Z             {
2026-06-10T22:49:44.7730883Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.7730981Z               "line": 68
2026-06-10T22:49:44.7731072Z             },
2026-06-10T22:49:44.7731164Z             {
2026-06-10T22:49:44.7731277Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.7731372Z               "line": 99
2026-06-10T22:49:44.7731467Z             },
2026-06-10T22:49:44.7731553Z             {
2026-06-10T22:49:44.7731662Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.7731762Z               "line": 183
2026-06-10T22:49:44.7731849Z             },
2026-06-10T22:49:44.7731939Z             {
2026-06-10T22:49:44.7732058Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.7732150Z               "line": 314
2026-06-10T22:49:44.7732244Z             }
2026-06-10T22:49:44.7732334Z           ]
2026-06-10T22:49:44.7732426Z         },
2026-06-10T22:49:44.7732516Z         "int": {
2026-06-10T22:49:44.7732626Z           "complete": true,
2026-06-10T22:49:44.7732720Z           "evidence": [
2026-06-10T22:49:44.7732813Z             {
2026-06-10T22:49:44.7732940Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.7733040Z               "line": 156
2026-06-10T22:49:44.7733132Z             },
2026-06-10T22:49:44.7733226Z             {
2026-06-10T22:49:44.7733350Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-10T22:49:44.7733447Z               "line": 102
2026-06-10T22:49:44.7733531Z             },
2026-06-10T22:49:44.7733630Z             {
2026-06-10T22:49:44.7733755Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.7733849Z               "line": 637
2026-06-10T22:49:44.7733938Z             },
2026-06-10T22:49:44.7734028Z             {
2026-06-10T22:49:44.7734158Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.7734258Z               "line": 974
2026-06-10T22:49:44.7734353Z             }
2026-06-10T22:49:44.7734444Z           ]
2026-06-10T22:49:44.7734529Z         },
2026-06-10T22:49:44.7734619Z         "unit": {
2026-06-10T22:49:44.7734716Z           "complete": true,
2026-06-10T22:49:44.7746396Z           "evidence": [
2026-06-10T22:49:44.7746507Z             {
2026-06-10T22:49:44.7746635Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.7746749Z               "line": 531
2026-06-10T22:49:44.7746855Z             },
2026-06-10T22:49:44.7746945Z             {
2026-06-10T22:49:44.7747077Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.7747196Z               "line": 574
2026-06-10T22:49:44.7747281Z             },
2026-06-10T22:49:44.7747370Z             {
2026-06-10T22:49:44.7747504Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-10T22:49:44.7747600Z               "line": 219
2026-06-10T22:49:44.7747690Z             }
2026-06-10T22:49:44.7747780Z           ]
2026-06-10T22:49:44.7747857Z         }
2026-06-10T22:49:44.7747953Z       }
2026-06-10T22:49:44.7748033Z     },
2026-06-10T22:49:44.7748119Z     {
2026-06-10T22:49:44.7748219Z       "id": "REQ-INST-6",
2026-06-10T22:49:44.7748415Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-10T22:49:44.7748515Z       "requiredStages": [
2026-06-10T22:49:44.7748610Z         "impl",
2026-06-10T22:49:44.7748686Z         "unit",
2026-06-10T22:49:44.7748788Z         "int"
2026-06-10T22:49:44.7748868Z       ],
2026-06-10T22:49:44.7749039Z       "stages": {
2026-06-10T22:49:44.7749130Z         "doc": {
2026-06-10T22:49:44.7749383Z           "complete": true,
2026-06-10T22:49:44.7749483Z           "evidence": [
2026-06-10T22:49:44.7749582Z             {
2026-06-10T22:49:44.7749705Z               "path": "docs/DEFERRED.md",
2026-06-10T22:49:44.7749806Z               "line": 13
2026-06-10T22:49:44.7749885Z             }
2026-06-10T22:49:44.7749970Z           ]
2026-06-10T22:49:44.7750052Z         },
2026-06-10T22:49:44.7750133Z         "impl": {
2026-06-10T22:49:44.7750328Z           "complete": true,
2026-06-10T22:49:44.7750429Z           "evidence": [
2026-06-10T22:49:44.7750510Z             {
2026-06-10T22:49:44.7750638Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.7750734Z               "line": 391
2026-06-10T22:49:44.7750819Z             },
2026-06-10T22:49:44.7750900Z             {
2026-06-10T22:49:44.7751020Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-10T22:49:44.7751115Z               "line": 27
2026-06-10T22:49:44.7751196Z             },
2026-06-10T22:49:44.7751291Z             {
2026-06-10T22:49:44.7751402Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-10T22:49:44.7751482Z               "line": 73
2026-06-10T22:49:44.7751562Z             },
2026-06-10T22:49:44.7751645Z             {
2026-06-10T22:49:44.7751768Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-10T22:49:44.7751863Z               "line": 182
2026-06-10T22:49:44.7751945Z             },
2026-06-10T22:49:44.7752032Z             {
2026-06-10T22:49:44.7752149Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7752245Z               "line": 424
2026-06-10T22:49:44.7752327Z             },
2026-06-10T22:49:44.7752412Z             {
2026-06-10T22:49:44.7752525Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-10T22:49:44.7752606Z               "line": 31
2026-06-10T22:49:44.7752683Z             },
2026-06-10T22:49:44.7752773Z             {
2026-06-10T22:49:44.7752892Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.7752993Z               "line": 182
2026-06-10T22:49:44.7753070Z             },
2026-06-10T22:49:44.7753149Z             {
2026-06-10T22:49:44.7753265Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.7753350Z               "line": 81
2026-06-10T22:49:44.7753431Z             },
2026-06-10T22:49:44.7753521Z             {
2026-06-10T22:49:44.7753623Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7753722Z               "line": 1187
2026-06-10T22:49:44.7753802Z             },
2026-06-10T22:49:44.7753880Z             {
2026-06-10T22:49:44.7753998Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.7754075Z               "line": 179
2026-06-10T22:49:44.7754170Z             },
2026-06-10T22:49:44.7754252Z             {
2026-06-10T22:49:44.7754355Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.7754442Z               "line": 215
2026-06-10T22:49:44.7754519Z             }
2026-06-10T22:49:44.7754614Z           ]
2026-06-10T22:49:44.7754699Z         },
2026-06-10T22:49:44.7754793Z         "int": {
2026-06-10T22:49:44.7754894Z           "complete": true,
2026-06-10T22:49:44.7754973Z           "evidence": [
2026-06-10T22:49:44.7755054Z             {
2026-06-10T22:49:44.7755177Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.7755274Z               "line": 651
2026-06-10T22:49:44.7755359Z             },
2026-06-10T22:49:44.7755439Z             {
2026-06-10T22:49:44.7755560Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.7755654Z               "line": 1019
2026-06-10T22:49:44.7755749Z             },
2026-06-10T22:49:44.7755832Z             {
2026-06-10T22:49:44.7755941Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.7756031Z               "line": 725
2026-06-10T22:49:44.7756117Z             }
2026-06-10T22:49:44.7756203Z           ]
2026-06-10T22:49:44.7756289Z         },
2026-06-10T22:49:44.7756374Z         "unit": {
2026-06-10T22:49:44.7756546Z           "complete": true,
2026-06-10T22:49:44.7756636Z           "evidence": [
2026-06-10T22:49:44.7756713Z             {
2026-06-10T22:49:44.7756833Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.7756918Z               "line": 660
2026-06-10T22:49:44.7756999Z             },
2026-06-10T22:49:44.7757076Z             {
2026-06-10T22:49:44.7757199Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.7757372Z               "line": 897
2026-06-10T22:49:44.7757454Z             },
2026-06-10T22:49:44.7757542Z             {
2026-06-10T22:49:44.7757660Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-10T22:49:44.7757747Z               "line": 66
2026-06-10T22:49:44.7757836Z             },
2026-06-10T22:49:44.7757926Z             {
2026-06-10T22:49:44.7758040Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.7758131Z               "line": 272
2026-06-10T22:49:44.7758221Z             },
2026-06-10T22:49:44.7758321Z             {
2026-06-10T22:49:44.7758422Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T22:49:44.7758517Z               "line": 201
2026-06-10T22:49:44.7758593Z             }
2026-06-10T22:49:44.7758674Z           ]
2026-06-10T22:49:44.7758756Z         }
2026-06-10T22:49:44.7758837Z       }
2026-06-10T22:49:44.7758927Z     },
2026-06-10T22:49:44.7759099Z     {
2026-06-10T22:49:44.7759194Z       "id": "REQ-INST-7",
2026-06-10T22:49:44.7759338Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-10T22:49:44.7759437Z       "requiredStages": [
2026-06-10T22:49:44.7759518Z         "impl",
2026-06-10T22:49:44.7759604Z         "unit",
2026-06-10T22:49:44.7759682Z         "int"
2026-06-10T22:49:44.7759771Z       ],
2026-06-10T22:49:44.7759862Z       "stages": {
2026-06-10T22:49:44.7759948Z         "doc": {
2026-06-10T22:49:44.7760048Z           "complete": false,
2026-06-10T22:49:44.7760143Z           "evidence": []
2026-06-10T22:49:44.7760237Z         },
2026-06-10T22:49:44.7760319Z         "impl": {
2026-06-10T22:49:44.7760403Z           "complete": true,
2026-06-10T22:49:44.7760501Z           "evidence": [
2026-06-10T22:49:44.7760578Z             {
2026-06-10T22:49:44.7760703Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.7760793Z               "line": 436
2026-06-10T22:49:44.7760883Z             },
2026-06-10T22:49:44.7760965Z             {
2026-06-10T22:49:44.7761089Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7761178Z               "line": 42
2026-06-10T22:49:44.7761266Z             },
2026-06-10T22:49:44.7761361Z             {
2026-06-10T22:49:44.7761488Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7761571Z               "line": 27
2026-06-10T22:49:44.7761656Z             },
2026-06-10T22:49:44.7761737Z             {
2026-06-10T22:49:44.7761856Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7761952Z               "line": 191
2026-06-10T22:49:44.7762042Z             },
2026-06-10T22:49:44.7762118Z             {
2026-06-10T22:49:44.7762234Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7762333Z               "line": 328
2026-06-10T22:49:44.7762414Z             },
2026-06-10T22:49:44.7762491Z             {
2026-06-10T22:49:44.7762601Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-10T22:49:44.7762699Z               "line": 59
2026-06-10T22:49:44.7762786Z             },
2026-06-10T22:49:44.7762864Z             {
2026-06-10T22:49:44.7762991Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7763071Z               "line": 41
2026-06-10T22:49:44.7763152Z             },
2026-06-10T22:49:44.7763229Z             {
2026-06-10T22:49:44.7763343Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T22:49:44.7763438Z               "line": 27
2026-06-10T22:49:44.7763514Z             },
2026-06-10T22:49:44.7763704Z             {
2026-06-10T22:49:44.7763825Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T22:49:44.7763924Z               "line": 119
2026-06-10T22:49:44.7764005Z             },
2026-06-10T22:49:44.7764091Z             {
2026-06-10T22:49:44.7764216Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T22:49:44.7764311Z               "line": 134
2026-06-10T22:49:44.7764396Z             },
2026-06-10T22:49:44.7764577Z             {
2026-06-10T22:49:44.7764706Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T22:49:44.7764798Z               "line": 139
2026-06-10T22:49:44.7764888Z             }
2026-06-10T22:49:44.7764978Z           ]
2026-06-10T22:49:44.7765055Z         },
2026-06-10T22:49:44.7765142Z         "int": {
2026-06-10T22:49:44.7765240Z           "complete": true,
2026-06-10T22:49:44.7765339Z           "evidence": [
2026-06-10T22:49:44.7765425Z             {
2026-06-10T22:49:44.7765557Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-10T22:49:44.7765657Z               "line": 102
2026-06-10T22:49:44.7765742Z             },
2026-06-10T22:49:44.7765834Z             {
2026-06-10T22:49:44.7765952Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.7766053Z               "line": 595
2026-06-10T22:49:44.7766129Z             },
2026-06-10T22:49:44.7766215Z             {
2026-06-10T22:49:44.7766333Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.7766430Z               "line": 869
2026-06-10T22:49:44.7766516Z             }
2026-06-10T22:49:44.7766605Z           ]
2026-06-10T22:49:44.7766687Z         },
2026-06-10T22:49:44.7766778Z         "unit": {
2026-06-10T22:49:44.7766868Z           "complete": true,
2026-06-10T22:49:44.7766954Z           "evidence": [
2026-06-10T22:49:44.7767040Z             {
2026-06-10T22:49:44.7767164Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7767259Z               "line": 1052
2026-06-10T22:49:44.7767351Z             },
2026-06-10T22:49:44.7767445Z             {
2026-06-10T22:49:44.7767573Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7767665Z               "line": 1383
2026-06-10T22:49:44.7767746Z             },
2026-06-10T22:49:44.7767836Z             {
2026-06-10T22:49:44.7767956Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-10T22:49:44.7768051Z               "line": 84
2026-06-10T22:49:44.7768150Z             },
2026-06-10T22:49:44.7768239Z             {
2026-06-10T22:49:44.7768359Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7768452Z               "line": 763
2026-06-10T22:49:44.7768542Z             },
2026-06-10T22:49:44.7768619Z             {
2026-06-10T22:49:44.7768744Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7768838Z               "line": 774
2026-06-10T22:49:44.7768929Z             },
2026-06-10T22:49:44.7769105Z             {
2026-06-10T22:49:44.7769220Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7769311Z               "line": 789
2026-06-10T22:49:44.7769392Z             },
2026-06-10T22:49:44.7769477Z             {
2026-06-10T22:49:44.7769588Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T22:49:44.7769687Z               "line": 165
2026-06-10T22:49:44.7769773Z             },
2026-06-10T22:49:44.7769849Z             {
2026-06-10T22:49:44.7769969Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T22:49:44.7770059Z               "line": 180
2026-06-10T22:49:44.7770150Z             },
2026-06-10T22:49:44.7770237Z             {
2026-06-10T22:49:44.7770350Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T22:49:44.7770446Z               "line": 213
2026-06-10T22:49:44.7770528Z             }
2026-06-10T22:49:44.7770618Z           ]
2026-06-10T22:49:44.7770703Z         }
2026-06-10T22:49:44.7770787Z       }
2026-06-10T22:49:44.7770888Z     },
2026-06-10T22:49:44.7771099Z     {
2026-06-10T22:49:44.7771196Z       "id": "REQ-INST-8",
2026-06-10T22:49:44.7771348Z       "title": "Remote-control mode distinct from local operation",
2026-06-10T22:49:44.7771448Z       "requiredStages": [
2026-06-10T22:49:44.7771535Z         "impl",
2026-06-10T22:49:44.7771625Z         "unit",
2026-06-10T22:49:44.7771701Z         "int"
2026-06-10T22:49:44.7771787Z       ],
2026-06-10T22:49:44.7771873Z       "stages": {
2026-06-10T22:49:44.7772053Z         "doc": {
2026-06-10T22:49:44.7772150Z           "complete": false,
2026-06-10T22:49:44.7772245Z           "evidence": []
2026-06-10T22:49:44.7772335Z         },
2026-06-10T22:49:44.7772421Z         "impl": {
2026-06-10T22:49:44.7772522Z           "complete": true,
2026-06-10T22:49:44.7772612Z           "evidence": [
2026-06-10T22:49:44.7772702Z             {
2026-06-10T22:49:44.7772827Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-10T22:49:44.7772921Z               "line": 98
2026-06-10T22:49:44.7773003Z             },
2026-06-10T22:49:44.7773095Z             {
2026-06-10T22:49:44.7773198Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-10T22:49:44.7773294Z               "line": 209
2026-06-10T22:49:44.7773380Z             },
2026-06-10T22:49:44.7773471Z             {
2026-06-10T22:49:44.7773584Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-10T22:49:44.7773678Z               "line": 230
2026-06-10T22:49:44.7773765Z             },
2026-06-10T22:49:44.7773847Z             {
2026-06-10T22:49:44.7773974Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-10T22:49:44.7774066Z               "line": 35
2026-06-10T22:49:44.7774156Z             }
2026-06-10T22:49:44.7774241Z           ]
2026-06-10T22:49:44.7774327Z         },
2026-06-10T22:49:44.7774414Z         "int": {
2026-06-10T22:49:44.7774509Z           "complete": true,
2026-06-10T22:49:44.7774603Z           "evidence": [
2026-06-10T22:49:44.7774690Z             {
2026-06-10T22:49:44.7774818Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.7774913Z               "line": 415
2026-06-10T22:49:44.7775010Z             },
2026-06-10T22:49:44.7775101Z             {
2026-06-10T22:49:44.7775214Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.7775305Z               "line": 933
2026-06-10T22:49:44.7775392Z             }
2026-06-10T22:49:44.7775485Z           ]
2026-06-10T22:49:44.7775566Z         },
2026-06-10T22:49:44.7775664Z         "unit": {
2026-06-10T22:49:44.7775767Z           "complete": true,
2026-06-10T22:49:44.7775857Z           "evidence": [
2026-06-10T22:49:44.7775947Z             {
2026-06-10T22:49:44.7776062Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-10T22:49:44.7776155Z               "line": 181
2026-06-10T22:49:44.7776231Z             },
2026-06-10T22:49:44.7776312Z             {
2026-06-10T22:49:44.7776433Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-10T22:49:44.7776526Z               "line": 259
2026-06-10T22:49:44.7776622Z             },
2026-06-10T22:49:44.7776699Z             {
2026-06-10T22:49:44.7776812Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-10T22:49:44.7776903Z               "line": 70
2026-06-10T22:49:44.7776990Z             },
2026-06-10T22:49:44.7777076Z             {
2026-06-10T22:49:44.7777194Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-10T22:49:44.7777276Z               "line": 110
2026-06-10T22:49:44.7777366Z             }
2026-06-10T22:49:44.7777456Z           ]
2026-06-10T22:49:44.7777547Z         }
2026-06-10T22:49:44.7777639Z       }
2026-06-10T22:49:44.7777714Z     },
2026-06-10T22:49:44.7777790Z     {
2026-06-10T22:49:44.7777887Z       "id": "REQ-INST-9",
2026-06-10T22:49:44.7778067Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-10T22:49:44.7778158Z       "requiredStages": [
2026-06-10T22:49:44.7778245Z         "impl",
2026-06-10T22:49:44.7778325Z         "unit"
2026-06-10T22:49:44.7778420Z       ],
2026-06-10T22:49:44.7778588Z       "stages": {
2026-06-10T22:49:44.7778681Z         "doc": {
2026-06-10T22:49:44.7778776Z           "complete": false,
2026-06-10T22:49:44.7778872Z           "evidence": []
2026-06-10T22:49:44.7779036Z         },
2026-06-10T22:49:44.7779126Z         "impl": {
2026-06-10T22:49:44.7779218Z           "complete": true,
2026-06-10T22:49:44.7779309Z           "evidence": [
2026-06-10T22:49:44.7779389Z             {
2026-06-10T22:49:44.7779609Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7779708Z               "line": 401
2026-06-10T22:49:44.7779795Z             }
2026-06-10T22:49:44.7779886Z           ]
2026-06-10T22:49:44.7779976Z         },
2026-06-10T22:49:44.7780210Z         "int": {
2026-06-10T22:49:44.7780404Z           "complete": false,
2026-06-10T22:49:44.7780624Z           "evidence": []
2026-06-10T22:49:44.7780807Z         },
2026-06-10T22:49:44.7780982Z         "unit": {
2026-06-10T22:49:44.7781183Z           "complete": true,
2026-06-10T22:49:44.7781396Z           "evidence": [
2026-06-10T22:49:44.7781584Z             {
2026-06-10T22:49:44.7781804Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7782066Z               "line": 1300
2026-06-10T22:49:44.7782266Z             },
2026-06-10T22:49:44.7782438Z             {
2026-06-10T22:49:44.7782647Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7782904Z               "line": 1309
2026-06-10T22:49:44.7783105Z             },
2026-06-10T22:49:44.7783281Z             {
2026-06-10T22:49:44.7783510Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7783768Z               "line": 1325
2026-06-10T22:49:44.7783989Z             },
2026-06-10T22:49:44.7784191Z             {
2026-06-10T22:49:44.7784407Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7784664Z               "line": 1337
2026-06-10T22:49:44.7784858Z             },
2026-06-10T22:49:44.7785173Z             {
2026-06-10T22:49:44.7785445Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.7785717Z               "line": 1357
2026-06-10T22:49:44.7785909Z             }
2026-06-10T22:49:44.7786079Z           ]
2026-06-10T22:49:44.7786247Z         }
2026-06-10T22:49:44.7786417Z       }
2026-06-10T22:49:44.7786588Z     },
2026-06-10T22:49:44.7786748Z     {
2026-06-10T22:49:44.7786935Z       "id": "REQ-INSTALL-1",
2026-06-10T22:49:44.7787255Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-10T22:49:44.7787588Z       "requiredStages": [
2026-06-10T22:49:44.7787798Z         "doc",
2026-06-10T22:49:44.7787979Z         "impl",
2026-06-10T22:49:44.7788160Z         "int"
2026-06-10T22:49:44.7788332Z       ],
2026-06-10T22:49:44.7788499Z       "stages": {
2026-06-10T22:49:44.7788679Z         "doc": {
2026-06-10T22:49:44.7788876Z           "complete": true,
2026-06-10T22:49:44.7789177Z           "evidence": [
2026-06-10T22:49:44.7789374Z             {
2026-06-10T22:49:44.7789568Z               "path": "CONTEXT.md",
2026-06-10T22:49:44.7789807Z               "line": 576
2026-06-10T22:49:44.7789997Z             }
2026-06-10T22:49:44.7790169Z           ]
2026-06-10T22:49:44.7790350Z         },
2026-06-10T22:49:44.7790518Z         "impl": {
2026-06-10T22:49:44.7790713Z           "complete": true,
2026-06-10T22:49:44.7790917Z           "evidence": [
2026-06-10T22:49:44.7791104Z             {
2026-06-10T22:49:44.7791299Z               "path": "installer/install.ps1",
2026-06-10T22:49:44.7791537Z               "line": 57
2026-06-10T22:49:44.7791734Z             },
2026-06-10T22:49:44.7791898Z             {
2026-06-10T22:49:44.7792093Z               "path": "installer/install.sh",
2026-06-10T22:49:44.7792340Z               "line": 52
2026-06-10T22:49:44.7792530Z             }
2026-06-10T22:49:44.7792707Z           ]
2026-06-10T22:49:44.7792887Z         },
2026-06-10T22:49:44.7793055Z         "int": {
2026-06-10T22:49:44.7793246Z           "complete": true,
2026-06-10T22:49:44.7793580Z           "evidence": [
2026-06-10T22:49:44.7793775Z             {
2026-06-10T22:49:44.7793985Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-10T22:49:44.7794249Z               "line": 21
2026-06-10T22:49:44.7794443Z             }
2026-06-10T22:49:44.7794610Z           ]
2026-06-10T22:49:44.7794779Z         },
2026-06-10T22:49:44.7795009Z         "unit": {
2026-06-10T22:49:44.7795195Z           "complete": false,
2026-06-10T22:49:44.7795506Z           "evidence": []
2026-06-10T22:49:44.7795714Z         }
2026-06-10T22:49:44.7795891Z       }
2026-06-10T22:49:44.7796058Z     },
2026-06-10T22:49:44.7796221Z     {
2026-06-10T22:49:44.7796391Z       "id": "REQ-INSTALL-2",
2026-06-10T22:49:44.7796668Z       "title": "Marketplace-repackaging-friendly install",
2026-06-10T22:49:44.7796945Z       "requiredStages": [
2026-06-10T22:49:44.7797148Z         "doc"
2026-06-10T22:49:44.7797327Z       ],
2026-06-10T22:49:44.7797505Z       "stages": {
2026-06-10T22:49:44.7797680Z         "doc": {
2026-06-10T22:49:44.7797876Z           "complete": true,
2026-06-10T22:49:44.7798077Z           "evidence": [
2026-06-10T22:49:44.7798272Z             {
2026-06-10T22:49:44.7798520Z               "path": "CONTEXT.md",
2026-06-10T22:49:44.7802256Z               "line": 577
2026-06-10T22:49:44.7802516Z             }
2026-06-10T22:49:44.7802700Z           ]
2026-06-10T22:49:44.7802876Z         },
2026-06-10T22:49:44.7803038Z         "impl": {
2026-06-10T22:49:44.7803248Z           "complete": false,
2026-06-10T22:49:44.7803457Z           "evidence": []
2026-06-10T22:49:44.7803658Z         },
2026-06-10T22:49:44.7803826Z         "int": {
2026-06-10T22:49:44.7804006Z           "complete": false,
2026-06-10T22:49:44.7804216Z           "evidence": []
2026-06-10T22:49:44.7804402Z         },
2026-06-10T22:49:44.7804578Z         "unit": {
2026-06-10T22:49:44.7804761Z           "complete": false,
2026-06-10T22:49:44.7804964Z           "evidence": []
2026-06-10T22:49:44.7805147Z         }
2026-06-10T22:49:44.7805312Z       }
2026-06-10T22:49:44.7805493Z     },
2026-06-10T22:49:44.7805655Z     {
2026-06-10T22:49:44.7805822Z       "id": "REQ-INSTALL-3",
2026-06-10T22:49:44.7806085Z       "title": "Idempotent + interactive-optional first run",
2026-06-10T22:49:44.7806366Z       "requiredStages": [
2026-06-10T22:49:44.7806556Z         "impl",
2026-06-10T22:49:44.7806729Z         "int"
2026-06-10T22:49:44.7806904Z       ],
2026-06-10T22:49:44.7807077Z       "stages": {
2026-06-10T22:49:44.7807276Z         "doc": {
2026-06-10T22:49:44.7807471Z           "complete": false,
2026-06-10T22:49:44.7807685Z           "evidence": []
2026-06-10T22:49:44.7807873Z         },
2026-06-10T22:49:44.7808046Z         "impl": {
2026-06-10T22:49:44.7808230Z           "complete": true,
2026-06-10T22:49:44.7808436Z           "evidence": [
2026-06-10T22:49:44.7808618Z             {
2026-06-10T22:49:44.7808827Z               "path": "installer/install.ps1",
2026-06-10T22:49:44.7809142Z               "line": 100
2026-06-10T22:49:44.7809333Z             },
2026-06-10T22:49:44.7809513Z             {
2026-06-10T22:49:44.7809700Z               "path": "installer/install.ps1",
2026-06-10T22:49:44.7809939Z               "line": 111
2026-06-10T22:49:44.7810124Z             },
2026-06-10T22:49:44.7810301Z             {
2026-06-10T22:49:44.7810480Z               "path": "installer/install.sh",
2026-06-10T22:49:44.7810722Z               "line": 79
2026-06-10T22:49:44.7810928Z             }
2026-06-10T22:49:44.7811132Z           ]
2026-06-10T22:49:44.7811304Z         },
2026-06-10T22:49:44.7811480Z         "int": {
2026-06-10T22:49:44.7811661Z           "complete": true,
2026-06-10T22:49:44.7811862Z           "evidence": [
2026-06-10T22:49:44.7812061Z             {
2026-06-10T22:49:44.7812267Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-10T22:49:44.7812520Z               "line": 167
2026-06-10T22:49:44.7812710Z             }
2026-06-10T22:49:44.7812878Z           ]
2026-06-10T22:49:44.7813047Z         },
2026-06-10T22:49:44.7813213Z         "unit": {
2026-06-10T22:49:44.7813547Z           "complete": false,
2026-06-10T22:49:44.7813756Z           "evidence": []
2026-06-10T22:49:44.7813950Z         }
2026-06-10T22:49:44.7814123Z       }
2026-06-10T22:49:44.7814289Z     },
2026-06-10T22:49:44.7814452Z     {
2026-06-10T22:49:44.7814628Z       "id": "REQ-INSTALL-4",
2026-06-10T22:49:44.7815344Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-10T22:49:44.7816215Z       "requiredStages": [
2026-06-10T22:49:44.7816416Z         "impl",
2026-06-10T22:49:44.7816592Z         "unit"
2026-06-10T22:49:44.7816764Z       ],
2026-06-10T22:49:44.7816935Z       "stages": {
2026-06-10T22:49:44.7817116Z         "doc": {
2026-06-10T22:49:44.7817299Z           "complete": false,
2026-06-10T22:49:44.7817502Z           "evidence": []
2026-06-10T22:49:44.7817688Z         },
2026-06-10T22:49:44.7817875Z         "impl": {
2026-06-10T22:49:44.7818055Z           "complete": true,
2026-06-10T22:49:44.7818260Z           "evidence": [
2026-06-10T22:49:44.7818452Z             {
2026-06-10T22:49:44.7818677Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.7819034Z               "line": 154
2026-06-10T22:49:44.7819230Z             },
2026-06-10T22:49:44.7819406Z             {
2026-06-10T22:49:44.7819621Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T22:49:44.7819879Z               "line": 29
2026-06-10T22:49:44.7820069Z             },
2026-06-10T22:49:44.7820241Z             {
2026-06-10T22:49:44.7820447Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T22:49:44.7820699Z               "line": 117
2026-06-10T22:49:44.7820889Z             },
2026-06-10T22:49:44.7821055Z             {
2026-06-10T22:49:44.7821272Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T22:49:44.7821530Z               "line": 161
2026-06-10T22:49:44.7821730Z             },
2026-06-10T22:49:44.7821892Z             {
2026-06-10T22:49:44.7822093Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T22:49:44.7822345Z               "line": 191
2026-06-10T22:49:44.7822521Z             },
2026-06-10T22:49:44.7822694Z             {
2026-06-10T22:49:44.7822889Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T22:49:44.7823137Z               "line": 223
2026-06-10T22:49:44.7823333Z             },
2026-06-10T22:49:44.7823508Z             {
2026-06-10T22:49:44.7823703Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7823939Z               "line": 4166
2026-06-10T22:49:44.7824140Z             }
2026-06-10T22:49:44.7824326Z           ]
2026-06-10T22:49:44.7824497Z         },
2026-06-10T22:49:44.7824665Z         "int": {
2026-06-10T22:49:44.7824849Z           "complete": false,
2026-06-10T22:49:44.7825055Z           "evidence": []
2026-06-10T22:49:44.7825256Z         },
2026-06-10T22:49:44.7825437Z         "unit": {
2026-06-10T22:49:44.7825618Z           "complete": true,
2026-06-10T22:49:44.7825818Z           "evidence": [
2026-06-10T22:49:44.7826009Z             {
2026-06-10T22:49:44.7826229Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.7826493Z               "line": 335
2026-06-10T22:49:44.7826685Z             },
2026-06-10T22:49:44.7826861Z             {
2026-06-10T22:49:44.7827075Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T22:49:44.7827324Z               "line": 269
2026-06-10T22:49:44.7827515Z             },
2026-06-10T22:49:44.7827686Z             {
2026-06-10T22:49:44.7827887Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T22:49:44.7828130Z               "line": 310
2026-06-10T22:49:44.7828320Z             },
2026-06-10T22:49:44.7828493Z             {
2026-06-10T22:49:44.7828696Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T22:49:44.7829036Z               "line": 330
2026-06-10T22:49:44.7829375Z             },
2026-06-10T22:49:44.7829548Z             {
2026-06-10T22:49:44.7829738Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7829990Z               "line": 5756
2026-06-10T22:49:44.7830181Z             }
2026-06-10T22:49:44.7830343Z           ]
2026-06-10T22:49:44.7830515Z         }
2026-06-10T22:49:44.7830683Z       }
2026-06-10T22:49:44.7830877Z     },
2026-06-10T22:49:44.7831041Z     {
2026-06-10T22:49:44.7831331Z       "id": "REQ-INSTALL-5",
2026-06-10T22:49:44.7831913Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-10T22:49:44.7832504Z       "requiredStages": [
2026-06-10T22:49:44.7832705Z         "impl",
2026-06-10T22:49:44.7832881Z         "int"
2026-06-10T22:49:44.7833129Z       ],
2026-06-10T22:49:44.7833293Z       "stages": {
2026-06-10T22:49:44.7833530Z         "doc": {
2026-06-10T22:49:44.7833725Z           "complete": false,
2026-06-10T22:49:44.7833984Z           "evidence": []
2026-06-10T22:49:44.7834163Z         },
2026-06-10T22:49:44.7834329Z         "impl": {
2026-06-10T22:49:44.7834513Z           "complete": true,
2026-06-10T22:49:44.7834719Z           "evidence": [
2026-06-10T22:49:44.7834910Z             {
2026-06-10T22:49:44.7835099Z               "path": "installer/install.ps1",
2026-06-10T22:49:44.7835344Z               "line": 5
2026-06-10T22:49:44.7835539Z             },
2026-06-10T22:49:44.7835715Z             {
2026-06-10T22:49:44.7835916Z               "path": "installer/install.sh",
2026-06-10T22:49:44.7836146Z               "line": 6
2026-06-10T22:49:44.7836345Z             }
2026-06-10T22:49:44.7836517Z           ]
2026-06-10T22:49:44.7836692Z         },
2026-06-10T22:49:44.7836860Z         "int": {
2026-06-10T22:49:44.7837049Z           "complete": true,
2026-06-10T22:49:44.7837255Z           "evidence": [
2026-06-10T22:49:44.7837445Z             {
2026-06-10T22:49:44.7837688Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-10T22:49:44.7837954Z               "line": 22
2026-06-10T22:49:44.7838184Z             }
2026-06-10T22:49:44.7838351Z           ]
2026-06-10T22:49:44.7838513Z         },
2026-06-10T22:49:44.7838666Z         "unit": {
2026-06-10T22:49:44.7838856Z           "complete": false,
2026-06-10T22:49:44.7839288Z           "evidence": []
2026-06-10T22:49:44.7839483Z         }
2026-06-10T22:49:44.7839659Z       }
2026-06-10T22:49:44.7839830Z     },
2026-06-10T22:49:44.7840002Z     {
2026-06-10T22:49:44.7840188Z       "id": "REQ-INSTALL-6",
2026-06-10T22:49:44.7841639Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-10T22:49:44.7842802Z       "requiredStages": [
2026-06-10T22:49:44.7843003Z         "impl",
2026-06-10T22:49:44.7843190Z         "unit"
2026-06-10T22:49:44.7843369Z       ],
2026-06-10T22:49:44.7843543Z       "stages": {
2026-06-10T22:49:44.7843723Z         "doc": {
2026-06-10T22:49:44.7843909Z           "complete": false,
2026-06-10T22:49:44.7844115Z           "evidence": []
2026-06-10T22:49:44.7844304Z         },
2026-06-10T22:49:44.7844487Z         "impl": {
2026-06-10T22:49:44.7844675Z           "complete": true,
2026-06-10T22:49:44.7844884Z           "evidence": [
2026-06-10T22:49:44.7845078Z             {
2026-06-10T22:49:44.7845288Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7845551Z               "line": 59
2026-06-10T22:49:44.7845742Z             },
2026-06-10T22:49:44.7845918Z             {
2026-06-10T22:49:44.7846123Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.7846376Z               "line": 559
2026-06-10T22:49:44.7846681Z             },
2026-06-10T22:49:44.7846876Z             {
2026-06-10T22:49:44.7847096Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7847359Z               "line": 191
2026-06-10T22:49:44.7847552Z             },
2026-06-10T22:49:44.7847730Z             {
2026-06-10T22:49:44.7847938Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7848195Z               "line": 276
2026-06-10T22:49:44.7848501Z             },
2026-06-10T22:49:44.7848673Z             {
2026-06-10T22:49:44.7848873Z               "path": "crates/spt/src/main.rs",
2026-06-10T22:49:44.7849207Z               "line": 40
2026-06-10T22:49:44.7849397Z             },
2026-06-10T22:49:44.7849570Z             {
2026-06-10T22:49:44.7849763Z               "path": "installer/install.sh",
2026-06-10T22:49:44.7850001Z               "line": 104
2026-06-10T22:49:44.7850185Z             }
2026-06-10T22:49:44.7850358Z           ]
2026-06-10T22:49:44.7850529Z         },
2026-06-10T22:49:44.7850706Z         "int": {
2026-06-10T22:49:44.7850887Z           "complete": false,
2026-06-10T22:49:44.7851101Z           "evidence": []
2026-06-10T22:49:44.7851287Z         },
2026-06-10T22:49:44.7851459Z         "unit": {
2026-06-10T22:49:44.7851640Z           "complete": true,
2026-06-10T22:49:44.7851841Z           "evidence": [
2026-06-10T22:49:44.7852031Z             {
2026-06-10T22:49:44.7852241Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T22:49:44.7852504Z               "line": 866
2026-06-10T22:49:44.7852693Z             }
2026-06-10T22:49:44.7852864Z           ]
2026-06-10T22:49:44.7853033Z         }
2026-06-10T22:49:44.7853196Z       }
2026-06-10T22:49:44.7853362Z     },
2026-06-10T22:49:44.7853525Z     {
2026-06-10T22:49:44.7853701Z       "id": "REQ-INSTALL-7",
2026-06-10T22:49:44.7854946Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-10T22:49:44.7856054Z       "requiredStages": [
2026-06-10T22:49:44.7856253Z         "impl"
2026-06-10T22:49:44.7856426Z       ],
2026-06-10T22:49:44.7856593Z       "stages": {
2026-06-10T22:49:44.7856773Z         "doc": {
2026-06-10T22:49:44.7856970Z           "complete": false,
2026-06-10T22:49:44.7857188Z           "evidence": []
2026-06-10T22:49:44.7857379Z         },
2026-06-10T22:49:44.7857552Z         "impl": {
2026-06-10T22:49:44.7857741Z           "complete": true,
2026-06-10T22:49:44.7857943Z           "evidence": [
2026-06-10T22:49:44.7858131Z             {
2026-06-10T22:49:44.7858328Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7858575Z               "line": 2830
2026-06-10T22:49:44.7858774Z             },
2026-06-10T22:49:44.7859033Z             {
2026-06-10T22:49:44.7859233Z               "path": "installer/install.ps1",
2026-06-10T22:49:44.7859472Z               "line": 157
2026-06-10T22:49:44.7859662Z             }
2026-06-10T22:49:44.7859840Z           ]
2026-06-10T22:49:44.7860005Z         },
2026-06-10T22:49:44.7860173Z         "int": {
2026-06-10T22:49:44.7860352Z           "complete": false,
2026-06-10T22:49:44.7860561Z           "evidence": []
2026-06-10T22:49:44.7860736Z         },
2026-06-10T22:49:44.7860914Z         "unit": {
2026-06-10T22:49:44.7861094Z           "complete": false,
2026-06-10T22:49:44.7861299Z           "evidence": []
2026-06-10T22:49:44.7861481Z         }
2026-06-10T22:49:44.7861637Z       }
2026-06-10T22:49:44.7861805Z     },
2026-06-10T22:49:44.7861970Z     {
2026-06-10T22:49:44.7862143Z       "id": "REQ-INSTALL-8",
2026-06-10T22:49:44.7863239Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-10T22:49:44.7864462Z       "requiredStages": [
2026-06-10T22:49:44.7864653Z         "impl"
2026-06-10T22:49:44.7864824Z       ],
2026-06-10T22:49:44.7864997Z       "stages": {
2026-06-10T22:49:44.7865182Z         "doc": {
2026-06-10T22:49:44.7865468Z           "complete": false,
2026-06-10T22:49:44.7865692Z           "evidence": []
2026-06-10T22:49:44.7865891Z         },
2026-06-10T22:49:44.7866060Z         "impl": {
2026-06-10T22:49:44.7866247Z           "complete": true,
2026-06-10T22:49:44.7866446Z           "evidence": [
2026-06-10T22:49:44.7866638Z             {
2026-06-10T22:49:44.7866828Z               "path": "installer/install.ps1",
2026-06-10T22:49:44.7867066Z               "line": 184
2026-06-10T22:49:44.7867258Z             },
2026-06-10T22:49:44.7867424Z             {
2026-06-10T22:49:44.7867629Z               "path": "installer/install.sh",
2026-06-10T22:49:44.7867864Z               "line": 121
2026-06-10T22:49:44.7868054Z             }
2026-06-10T22:49:44.7868221Z           ]
2026-06-10T22:49:44.7868383Z         },
2026-06-10T22:49:44.7868554Z         "int": {
2026-06-10T22:49:44.7868734Z           "complete": false,
2026-06-10T22:49:44.7869025Z           "evidence": []
2026-06-10T22:49:44.7869212Z         },
2026-06-10T22:49:44.7869388Z         "unit": {
2026-06-10T22:49:44.7869574Z           "complete": false,
2026-06-10T22:49:44.7869775Z           "evidence": []
2026-06-10T22:49:44.7869960Z         }
2026-06-10T22:49:44.7870127Z       }
2026-06-10T22:49:44.7870298Z     },
2026-06-10T22:49:44.7870451Z     {
2026-06-10T22:49:44.7870623Z       "id": "REQ-MANIFEST-1",
2026-06-10T22:49:44.7870931Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-10T22:49:44.7871253Z       "requiredStages": [
2026-06-10T22:49:44.7871450Z         "doc",
2026-06-10T22:49:44.7871625Z         "impl",
2026-06-10T22:49:44.7871802Z         "unit"
2026-06-10T22:49:44.7871974Z       ],
2026-06-10T22:49:44.7872145Z       "stages": {
2026-06-10T22:49:44.7872318Z         "doc": {
2026-06-10T22:49:44.7872493Z           "complete": true,
2026-06-10T22:49:44.7872694Z           "evidence": [
2026-06-10T22:49:44.7872884Z             {
2026-06-10T22:49:44.7873070Z               "path": "docs/MANIFEST.md",
2026-06-10T22:49:44.7873305Z               "line": 19
2026-06-10T22:49:44.7873494Z             }
2026-06-10T22:49:44.7873662Z           ]
2026-06-10T22:49:44.7873832Z         },
2026-06-10T22:49:44.7873998Z         "impl": {
2026-06-10T22:49:44.7874173Z           "complete": true,
2026-06-10T22:49:44.7874374Z           "evidence": [
2026-06-10T22:49:44.7874546Z             {
2026-06-10T22:49:44.7874759Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7875022Z               "line": 18
2026-06-10T22:49:44.7875218Z             }
2026-06-10T22:49:44.7878090Z           ]
2026-06-10T22:49:44.7878309Z         },
2026-06-10T22:49:44.7878485Z         "int": {
2026-06-10T22:49:44.7878682Z           "complete": false,
2026-06-10T22:49:44.7878895Z           "evidence": []
2026-06-10T22:49:44.7879171Z         },
2026-06-10T22:49:44.7879342Z         "unit": {
2026-06-10T22:49:44.7879533Z           "complete": true,
2026-06-10T22:49:44.7879734Z           "evidence": [
2026-06-10T22:49:44.7879928Z             {
2026-06-10T22:49:44.7880157Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7880425Z               "line": 746
2026-06-10T22:49:44.7880616Z             },
2026-06-10T22:49:44.7880792Z             {
2026-06-10T22:49:44.7880998Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7881250Z               "line": 860
2026-06-10T22:49:44.7881444Z             },
2026-06-10T22:49:44.7881616Z             {
2026-06-10T22:49:44.7881822Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7882214Z               "line": 872
2026-06-10T22:49:44.7882405Z             },
2026-06-10T22:49:44.7882568Z             {
2026-06-10T22:49:44.7882767Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7883015Z               "line": 883
2026-06-10T22:49:44.7883212Z             },
2026-06-10T22:49:44.7883382Z             {
2026-06-10T22:49:44.7883578Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7883959Z               "line": 900
2026-06-10T22:49:44.7884147Z             },
2026-06-10T22:49:44.7884321Z             {
2026-06-10T22:49:44.7884516Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7884762Z               "line": 914
2026-06-10T22:49:44.7884953Z             },
2026-06-10T22:49:44.7885120Z             {
2026-06-10T22:49:44.7885319Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7885559Z               "line": 929
2026-06-10T22:49:44.7885750Z             },
2026-06-10T22:49:44.7885925Z             {
2026-06-10T22:49:44.7886121Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7886360Z               "line": 944
2026-06-10T22:49:44.7886554Z             },
2026-06-10T22:49:44.7886727Z             {
2026-06-10T22:49:44.7886926Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7887167Z               "line": 959
2026-06-10T22:49:44.7887343Z             },
2026-06-10T22:49:44.7887515Z             {
2026-06-10T22:49:44.7887716Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.7887963Z               "line": 970
2026-06-10T22:49:44.7888149Z             }
2026-06-10T22:49:44.7888321Z           ]
2026-06-10T22:49:44.7888492Z         }
2026-06-10T22:49:44.7888665Z       }
2026-06-10T22:49:44.7888821Z     },
2026-06-10T22:49:44.7889050Z     {
2026-06-10T22:49:44.7889222Z       "id": "REQ-MESH-1",
2026-06-10T22:49:44.7891390Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-10T22:49:44.7893233Z       "requiredStages": [
2026-06-10T22:49:44.7893438Z         "impl",
2026-06-10T22:49:44.7893604Z         "unit",
2026-06-10T22:49:44.7893782Z         "int"
2026-06-10T22:49:44.7893957Z       ],
2026-06-10T22:49:44.7894124Z       "stages": {
2026-06-10T22:49:44.7894300Z         "doc": {
2026-06-10T22:49:44.7894477Z           "complete": false,
2026-06-10T22:49:44.7894697Z           "evidence": []
2026-06-10T22:49:44.7894886Z         },
2026-06-10T22:49:44.7895058Z         "impl": {
2026-06-10T22:49:44.7895245Z           "complete": true,
2026-06-10T22:49:44.7895442Z           "evidence": [
2026-06-10T22:49:44.7895627Z             {
2026-06-10T22:49:44.7895827Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7896085Z               "line": 680
2026-06-10T22:49:44.7896285Z             },
2026-06-10T22:49:44.7896481Z             {
2026-06-10T22:49:44.7896691Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7896949Z               "line": 38
2026-06-10T22:49:44.7897144Z             },
2026-06-10T22:49:44.7897316Z             {
2026-06-10T22:49:44.7897519Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7897774Z               "line": 161
2026-06-10T22:49:44.7897966Z             },
2026-06-10T22:49:44.7898136Z             {
2026-06-10T22:49:44.7898342Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7898714Z               "line": 206
2026-06-10T22:49:44.7898905Z             },
2026-06-10T22:49:44.7899085Z             {
2026-06-10T22:49:44.7899210Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.7899310Z               "line": 57
2026-06-10T22:49:44.7899405Z             },
2026-06-10T22:49:44.7899492Z             {
2026-06-10T22:49:44.7899629Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7899831Z               "line": 24
2026-06-10T22:49:44.7899925Z             },
2026-06-10T22:49:44.7900016Z             {
2026-06-10T22:49:44.7900146Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7900240Z               "line": 142
2026-06-10T22:49:44.7900334Z             },
2026-06-10T22:49:44.7900424Z             {
2026-06-10T22:49:44.7900559Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7900658Z               "line": 162
2026-06-10T22:49:44.7900758Z             }
2026-06-10T22:49:44.7900845Z           ]
2026-06-10T22:49:44.7900931Z         },
2026-06-10T22:49:44.7901025Z         "int": {
2026-06-10T22:49:44.7901121Z           "complete": true,
2026-06-10T22:49:44.7901216Z           "evidence": [
2026-06-10T22:49:44.7901306Z             {
2026-06-10T22:49:44.7901436Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-10T22:49:44.7901535Z               "line": 67
2026-06-10T22:49:44.7901626Z             },
2026-06-10T22:49:44.7901717Z             {
2026-06-10T22:49:44.7901841Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-10T22:49:44.7901936Z               "line": 93
2026-06-10T22:49:44.7902027Z             },
2026-06-10T22:49:44.7902114Z             {
2026-06-10T22:49:44.7902241Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-10T22:49:44.7902332Z               "line": 117
2026-06-10T22:49:44.7902429Z             },
2026-06-10T22:49:44.7902517Z             {
2026-06-10T22:49:44.7902645Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-10T22:49:44.7902736Z               "line": 134
2026-06-10T22:49:44.7902825Z             }
2026-06-10T22:49:44.7902915Z           ]
2026-06-10T22:49:44.7903001Z         },
2026-06-10T22:49:44.7903092Z         "unit": {
2026-06-10T22:49:44.7903191Z           "complete": true,
2026-06-10T22:49:44.7903281Z           "evidence": [
2026-06-10T22:49:44.7903378Z             {
2026-06-10T22:49:44.7903501Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.7903601Z               "line": 427
2026-06-10T22:49:44.7903693Z             },
2026-06-10T22:49:44.7903783Z             {
2026-06-10T22:49:44.7903921Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7904013Z               "line": 376
2026-06-10T22:49:44.7904102Z             },
2026-06-10T22:49:44.7904187Z             {
2026-06-10T22:49:44.7904322Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7904421Z               "line": 412
2026-06-10T22:49:44.7904512Z             },
2026-06-10T22:49:44.7904608Z             {
2026-06-10T22:49:44.7904731Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7904831Z               "line": 427
2026-06-10T22:49:44.7904919Z             },
2026-06-10T22:49:44.7905004Z             {
2026-06-10T22:49:44.7905132Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7905238Z               "line": 438
2026-06-10T22:49:44.7905329Z             },
2026-06-10T22:49:44.7905418Z             {
2026-06-10T22:49:44.7905551Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7905641Z               "line": 449
2026-06-10T22:49:44.7905729Z             },
2026-06-10T22:49:44.7905820Z             {
2026-06-10T22:49:44.7905949Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7906044Z               "line": 460
2026-06-10T22:49:44.7906236Z             },
2026-06-10T22:49:44.7906331Z             {
2026-06-10T22:49:44.7906454Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7906551Z               "line": 496
2026-06-10T22:49:44.7906645Z             },
2026-06-10T22:49:44.7906735Z             {
2026-06-10T22:49:44.7906855Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7907017Z               "line": 519
2026-06-10T22:49:44.7907103Z             },
2026-06-10T22:49:44.7907190Z             {
2026-06-10T22:49:44.7907308Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7907403Z               "line": 546
2026-06-10T22:49:44.7907490Z             }
2026-06-10T22:49:44.7907576Z           ]
2026-06-10T22:49:44.7907660Z         }
2026-06-10T22:49:44.7907742Z       }
2026-06-10T22:49:44.7907834Z     },
2026-06-10T22:49:44.7907919Z     {
2026-06-10T22:49:44.7908013Z       "id": "REQ-MESH-2",
2026-06-10T22:49:44.7910951Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-10T22:49:44.7911109Z       "requiredStages": [
2026-06-10T22:49:44.7911199Z         "impl",
2026-06-10T22:49:44.7911280Z         "unit",
2026-06-10T22:49:44.7911381Z         "int"
2026-06-10T22:49:44.7911462Z       ],
2026-06-10T22:49:44.7911547Z       "stages": {
2026-06-10T22:49:44.7911628Z         "doc": {
2026-06-10T22:49:44.7911729Z           "complete": false,
2026-06-10T22:49:44.7911820Z           "evidence": []
2026-06-10T22:49:44.7911904Z         },
2026-06-10T22:49:44.7911992Z         "impl": {
2026-06-10T22:49:44.7912082Z           "complete": true,
2026-06-10T22:49:44.7912181Z           "evidence": [
2026-06-10T22:49:44.7912262Z             {
2026-06-10T22:49:44.7912387Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.7912478Z               "line": 569
2026-06-10T22:49:44.7912558Z             },
2026-06-10T22:49:44.7912640Z             {
2026-06-10T22:49:44.7912763Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.7912853Z               "line": 118
2026-06-10T22:49:44.7912936Z             },
2026-06-10T22:49:44.7913021Z             {
2026-06-10T22:49:44.7913139Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.7913229Z               "line": 347
2026-06-10T22:49:44.7913315Z             },
2026-06-10T22:49:44.7913395Z             {
2026-06-10T22:49:44.7913508Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.7913599Z               "line": 389
2026-06-10T22:49:44.7913676Z             },
2026-06-10T22:49:44.7913761Z             {
2026-06-10T22:49:44.7913880Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.7913967Z               "line": 403
2026-06-10T22:49:44.7914048Z             },
2026-06-10T22:49:44.7914133Z             {
2026-06-10T22:49:44.7914248Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.7914333Z               "line": 492
2026-06-10T22:49:44.7914419Z             },
2026-06-10T22:49:44.7914495Z             {
2026-06-10T22:49:44.7914611Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.7914696Z               "line": 507
2026-06-10T22:49:44.7914944Z             },
2026-06-10T22:49:44.7915030Z             {
2026-06-10T22:49:44.7915139Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.7915226Z               "line": 534
2026-06-10T22:49:44.7915310Z             },
2026-06-10T22:49:44.7915391Z             {
2026-06-10T22:49:44.7915512Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7915607Z               "line": 207
2026-06-10T22:49:44.7915794Z             },
2026-06-10T22:49:44.7915875Z             {
2026-06-10T22:49:44.7915996Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7916081Z               "line": 755
2026-06-10T22:49:44.7916168Z             },
2026-06-10T22:49:44.7916248Z             {
2026-06-10T22:49:44.7916361Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7916447Z               "line": 816
2026-06-10T22:49:44.7916529Z             },
2026-06-10T22:49:44.7916614Z             {
2026-06-10T22:49:44.7916737Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7916825Z               "line": 869
2026-06-10T22:49:44.7916906Z             },
2026-06-10T22:49:44.7916990Z             {
2026-06-10T22:49:44.7917111Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7917196Z               "line": 891
2026-06-10T22:49:44.7917286Z             },
2026-06-10T22:49:44.7917372Z             {
2026-06-10T22:49:44.7917492Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7917582Z               "line": 112
2026-06-10T22:49:44.7917668Z             },
2026-06-10T22:49:44.7917760Z             {
2026-06-10T22:49:44.7917873Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7917958Z               "line": 44
2026-06-10T22:49:44.7918041Z             },
2026-06-10T22:49:44.7918122Z             {
2026-06-10T22:49:44.7918240Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7918331Z               "line": 184
2026-06-10T22:49:44.7918413Z             },
2026-06-10T22:49:44.7918493Z             {
2026-06-10T22:49:44.7918606Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7918691Z               "line": 211
2026-06-10T22:49:44.7918782Z             },
2026-06-10T22:49:44.7918866Z             {
2026-06-10T22:49:44.7919052Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7919148Z               "line": 251
2026-06-10T22:49:44.7919228Z             },
2026-06-10T22:49:44.7919310Z             {
2026-06-10T22:49:44.7919415Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7919500Z               "line": 275
2026-06-10T22:49:44.7919585Z             },
2026-06-10T22:49:44.7919658Z             {
2026-06-10T22:49:44.7919768Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7919848Z               "line": 289
2026-06-10T22:49:44.7919934Z             },
2026-06-10T22:49:44.7920011Z             {
2026-06-10T22:49:44.7920125Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7920211Z               "line": 300
2026-06-10T22:49:44.7920292Z             },
2026-06-10T22:49:44.7920373Z             {
2026-06-10T22:49:44.7920478Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7920568Z               "line": 313
2026-06-10T22:49:44.7920646Z             }
2026-06-10T22:49:44.7920725Z           ]
2026-06-10T22:49:44.7920807Z         },
2026-06-10T22:49:44.7920883Z         "int": {
2026-06-10T22:49:44.7920970Z           "complete": true,
2026-06-10T22:49:44.7921050Z           "evidence": [
2026-06-10T22:49:44.7921131Z             {
2026-06-10T22:49:44.7921251Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-10T22:49:44.7921341Z               "line": 116
2026-06-10T22:49:44.7921416Z             },
2026-06-10T22:49:44.7921492Z             {
2026-06-10T22:49:44.7921612Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-10T22:49:44.7921802Z               "line": 181
2026-06-10T22:49:44.7921893Z             }
2026-06-10T22:49:44.7921970Z           ]
2026-06-10T22:49:44.7922046Z         },
2026-06-10T22:49:44.7922126Z         "unit": {
2026-06-10T22:49:44.7922218Z           "complete": true,
2026-06-10T22:49:44.7922303Z           "evidence": [
2026-06-10T22:49:44.7922384Z             {
2026-06-10T22:49:44.7922508Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7922689Z               "line": 999
2026-06-10T22:49:44.7922770Z             },
2026-06-10T22:49:44.7922847Z             {
2026-06-10T22:49:44.7922966Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7923056Z               "line": 1016
2026-06-10T22:49:44.7923133Z             },
2026-06-10T22:49:44.7923210Z             {
2026-06-10T22:49:44.7923323Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7923414Z               "line": 1024
2026-06-10T22:49:44.7923501Z             },
2026-06-10T22:49:44.7923586Z             {
2026-06-10T22:49:44.7923699Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7923779Z               "line": 1048
2026-06-10T22:49:44.7923870Z             },
2026-06-10T22:49:44.7923946Z             {
2026-06-10T22:49:44.7924063Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.7924159Z               "line": 1499
2026-06-10T22:49:44.7924241Z             },
2026-06-10T22:49:44.7924317Z             {
2026-06-10T22:49:44.7924426Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7924518Z               "line": 347
2026-06-10T22:49:44.7924594Z             },
2026-06-10T22:49:44.7924669Z             {
2026-06-10T22:49:44.7924780Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7924866Z               "line": 370
2026-06-10T22:49:44.7924955Z             },
2026-06-10T22:49:44.7925051Z             {
2026-06-10T22:49:44.7925161Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7925256Z               "line": 407
2026-06-10T22:49:44.7925336Z             },
2026-06-10T22:49:44.7925424Z             {
2026-06-10T22:49:44.7925528Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7925618Z               "line": 431
2026-06-10T22:49:44.7925699Z             },
2026-06-10T22:49:44.7925791Z             {
2026-06-10T22:49:44.7925899Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7925995Z               "line": 483
2026-06-10T22:49:44.7926077Z             },
2026-06-10T22:49:44.7926162Z             {
2026-06-10T22:49:44.7926276Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7926368Z               "line": 499
2026-06-10T22:49:44.7926449Z             },
2026-06-10T22:49:44.7926533Z             {
2026-06-10T22:49:44.7926637Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7926733Z               "line": 514
2026-06-10T22:49:44.7926813Z             },
2026-06-10T22:49:44.7926902Z             {
2026-06-10T22:49:44.7927003Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7927089Z               "line": 531
2026-06-10T22:49:44.7927175Z             }
2026-06-10T22:49:44.7927255Z           ]
2026-06-10T22:49:44.7927337Z         }
2026-06-10T22:49:44.7927418Z       }
2026-06-10T22:49:44.7927503Z     },
2026-06-10T22:49:44.7927579Z     {
2026-06-10T22:49:44.7927680Z       "id": "REQ-MESH-3",
2026-06-10T22:49:44.7929469Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-10T22:49:44.7929680Z       "requiredStages": [
2026-06-10T22:49:44.7929769Z         "impl",
2026-06-10T22:49:44.7929860Z         "unit",
2026-06-10T22:49:44.7929937Z         "int"
2026-06-10T22:49:44.7930023Z       ],
2026-06-10T22:49:44.7930112Z       "stages": {
2026-06-10T22:49:44.7930199Z         "doc": {
2026-06-10T22:49:44.7930289Z           "complete": false,
2026-06-10T22:49:44.7930479Z           "evidence": []
2026-06-10T22:49:44.7930572Z         },
2026-06-10T22:49:44.7930656Z         "impl": {
2026-06-10T22:49:44.7930751Z           "complete": true,
2026-06-10T22:49:44.7930838Z           "evidence": [
2026-06-10T22:49:44.7930919Z             {
2026-06-10T22:49:44.7931043Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7931133Z               "line": 410
2026-06-10T22:49:44.7931216Z             },
2026-06-10T22:49:44.7931300Z             {
2026-06-10T22:49:44.7931429Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7931526Z               "line": 603
2026-06-10T22:49:44.7931610Z             }
2026-06-10T22:49:44.7931696Z           ]
2026-06-10T22:49:44.7931778Z         },
2026-06-10T22:49:44.7931864Z         "int": {
2026-06-10T22:49:44.7931953Z           "complete": true,
2026-06-10T22:49:44.7932047Z           "evidence": [
2026-06-10T22:49:44.7932128Z             {
2026-06-10T22:49:44.7932249Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-10T22:49:44.7932348Z               "line": 373
2026-06-10T22:49:44.7932434Z             },
2026-06-10T22:49:44.7932516Z             {
2026-06-10T22:49:44.7932625Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-10T22:49:44.7932710Z               "line": 436
2026-06-10T22:49:44.7932793Z             }
2026-06-10T22:49:44.7932878Z           ]
2026-06-10T22:49:44.7932958Z         },
2026-06-10T22:49:44.7933039Z         "unit": {
2026-06-10T22:49:44.7933140Z           "complete": true,
2026-06-10T22:49:44.7933230Z           "evidence": [
2026-06-10T22:49:44.7933316Z             {
2026-06-10T22:49:44.7933432Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7933526Z               "line": 881
2026-06-10T22:49:44.7933607Z             }
2026-06-10T22:49:44.7933688Z           ]
2026-06-10T22:49:44.7933775Z         }
2026-06-10T22:49:44.7933855Z       }
2026-06-10T22:49:44.7933941Z     },
2026-06-10T22:49:44.7934022Z     {
2026-06-10T22:49:44.7934123Z       "id": "REQ-MESH-4",
2026-06-10T22:49:44.7936211Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-10T22:49:44.7936313Z       "requiredStages": [
2026-06-10T22:49:44.7936393Z         "impl",
2026-06-10T22:49:44.7936474Z         "unit",
2026-06-10T22:49:44.7936545Z         "int"
2026-06-10T22:49:44.7936633Z       ],
2026-06-10T22:49:44.7936704Z       "stages": {
2026-06-10T22:49:44.7936788Z         "doc": {
2026-06-10T22:49:44.7936880Z           "complete": false,
2026-06-10T22:49:44.7936971Z           "evidence": []
2026-06-10T22:49:44.7937047Z         },
2026-06-10T22:49:44.7937140Z         "impl": {
2026-06-10T22:49:44.7937231Z           "complete": true,
2026-06-10T22:49:44.7937317Z           "evidence": [
2026-06-10T22:49:44.7937392Z             {
2026-06-10T22:49:44.7937505Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7937673Z               "line": 187
2026-06-10T22:49:44.7937758Z             },
2026-06-10T22:49:44.7937844Z             {
2026-06-10T22:49:44.7937969Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7938045Z               "line": 68
2026-06-10T22:49:44.7938120Z             },
2026-06-10T22:49:44.7938192Z             {
2026-06-10T22:49:44.7938312Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7938565Z               "line": 111
2026-06-10T22:49:44.7938650Z             },
2026-06-10T22:49:44.7938731Z             {
2026-06-10T22:49:44.7938856Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7939036Z               "line": 462
2026-06-10T22:49:44.7939103Z             },
2026-06-10T22:49:44.7939194Z             {
2026-06-10T22:49:44.7939317Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7939403Z               "line": 711
2026-06-10T22:49:44.7939495Z             },
2026-06-10T22:49:44.7939590Z             {
2026-06-10T22:49:44.7939707Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7939798Z               "line": 725
2026-06-10T22:49:44.7939884Z             },
2026-06-10T22:49:44.7939968Z             {
2026-06-10T22:49:44.7940076Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.7940172Z               "line": 122
2026-06-10T22:49:44.7940255Z             },
2026-06-10T22:49:44.7940348Z             {
2026-06-10T22:49:44.7940463Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T22:49:44.7940554Z               "line": 26
2026-06-10T22:49:44.7940644Z             },
2026-06-10T22:49:44.7940725Z             {
2026-06-10T22:49:44.7940841Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T22:49:44.7940926Z               "line": 97
2026-06-10T22:49:44.7941011Z             },
2026-06-10T22:49:44.7941093Z             {
2026-06-10T22:49:44.7941207Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T22:49:44.7941302Z               "line": 119
2026-06-10T22:49:44.7941383Z             },
2026-06-10T22:49:44.7941466Z             {
2026-06-10T22:49:44.7941579Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7941670Z               "line": 82
2026-06-10T22:49:44.7941752Z             },
2026-06-10T22:49:44.7941832Z             {
2026-06-10T22:49:44.7941950Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7942047Z               "line": 111
2026-06-10T22:49:44.7942133Z             },
2026-06-10T22:49:44.7942212Z             {
2026-06-10T22:49:44.7942318Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7942405Z               "line": 232
2026-06-10T22:49:44.7942490Z             },
2026-06-10T22:49:44.7942575Z             {
2026-06-10T22:49:44.7942680Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7942771Z               "line": 245
2026-06-10T22:49:44.7942851Z             },
2026-06-10T22:49:44.7942941Z             {
2026-06-10T22:49:44.7943047Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7943138Z               "line": 3562
2026-06-10T22:49:44.7943227Z             }
2026-06-10T22:49:44.7943309Z           ]
2026-06-10T22:49:44.7943395Z         },
2026-06-10T22:49:44.7943476Z         "int": {
2026-06-10T22:49:44.7943576Z           "complete": true,
2026-06-10T22:49:44.7943662Z           "evidence": [
2026-06-10T22:49:44.7943757Z             {
2026-06-10T22:49:44.7943881Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-10T22:49:44.7943963Z               "line": 98
2026-06-10T22:49:44.7944048Z             },
2026-06-10T22:49:44.7944129Z             {
2026-06-10T22:49:44.7944248Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-10T22:49:44.7944335Z               "line": 140
2026-06-10T22:49:44.7944424Z             }
2026-06-10T22:49:44.7944505Z           ]
2026-06-10T22:49:44.7944592Z         },
2026-06-10T22:49:44.7944674Z         "unit": {
2026-06-10T22:49:44.7944867Z           "complete": true,
2026-06-10T22:49:44.7944958Z           "evidence": [
2026-06-10T22:49:44.7945047Z             {
2026-06-10T22:49:44.7945165Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.7945251Z               "line": 844
2026-06-10T22:49:44.7945338Z             },
2026-06-10T22:49:44.7945418Z             {
2026-06-10T22:49:44.7945532Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7945728Z               "line": 1079
2026-06-10T22:49:44.7945818Z             },
2026-06-10T22:49:44.7945895Z             {
2026-06-10T22:49:44.7946014Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7946099Z               "line": 1109
2026-06-10T22:49:44.7946190Z             },
2026-06-10T22:49:44.7946272Z             {
2026-06-10T22:49:44.7946390Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T22:49:44.7946481Z               "line": 1129
2026-06-10T22:49:44.7946568Z             },
2026-06-10T22:49:44.7946658Z             {
2026-06-10T22:49:44.7946786Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T22:49:44.7946878Z               "line": 602
2026-06-10T22:49:44.7946958Z             },
2026-06-10T22:49:44.7947039Z             {
2026-06-10T22:49:44.7947159Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T22:49:44.7947250Z               "line": 148
2026-06-10T22:49:44.7947344Z             },
2026-06-10T22:49:44.7947425Z             {
2026-06-10T22:49:44.7947541Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T22:49:44.7947625Z               "line": 169
2026-06-10T22:49:44.7947710Z             },
2026-06-10T22:49:44.7947801Z             {
2026-06-10T22:49:44.7947905Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T22:49:44.7947999Z               "line": 181
2026-06-10T22:49:44.7948084Z             },
2026-06-10T22:49:44.7948166Z             {
2026-06-10T22:49:44.7948281Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T22:49:44.7948370Z               "line": 202
2026-06-10T22:49:44.7948457Z             },
2026-06-10T22:49:44.7948534Z             {
2026-06-10T22:49:44.7948647Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7948733Z               "line": 375
2026-06-10T22:49:44.7948800Z             },
2026-06-10T22:49:44.7948886Z             {
2026-06-10T22:49:44.7949091Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.7949182Z               "line": 407
2026-06-10T22:49:44.7949268Z             },
2026-06-10T22:49:44.7949348Z             {
2026-06-10T22:49:44.7949454Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7949544Z               "line": 7020
2026-06-10T22:49:44.7949620Z             }
2026-06-10T22:49:44.7949697Z           ]
2026-06-10T22:49:44.7949778Z         }
2026-06-10T22:49:44.7949859Z       }
2026-06-10T22:49:44.7949945Z     },
2026-06-10T22:49:44.7950021Z     {
2026-06-10T22:49:44.7950122Z       "id": "REQ-MESH-5",
2026-06-10T22:49:44.7951462Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-10T22:49:44.7951571Z       "requiredStages": [
2026-06-10T22:49:44.7951658Z         "impl",
2026-06-10T22:49:44.7951730Z         "unit"
2026-06-10T22:49:44.7951805Z       ],
2026-06-10T22:49:44.7951896Z       "stages": {
2026-06-10T22:49:44.7951973Z         "doc": {
2026-06-10T22:49:44.7952063Z           "complete": false,
2026-06-10T22:49:44.7952144Z           "evidence": []
2026-06-10T22:49:44.7952239Z         },
2026-06-10T22:49:44.7952312Z         "impl": {
2026-06-10T22:49:44.7952511Z           "complete": true,
2026-06-10T22:49:44.7952608Z           "evidence": [
2026-06-10T22:49:44.7952689Z             {
2026-06-10T22:49:44.7952812Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T22:49:44.7952903Z               "line": 61
2026-06-10T22:49:44.7952984Z             },
2026-06-10T22:49:44.7953069Z             {
2026-06-10T22:49:44.7955626Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T22:49:44.7955888Z               "line": 109
2026-06-10T22:49:44.7955978Z             },
2026-06-10T22:49:44.7956063Z             {
2026-06-10T22:49:44.7956198Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.7956292Z               "line": 104
2026-06-10T22:49:44.7956378Z             },
2026-06-10T22:49:44.7956470Z             {
2026-06-10T22:49:44.7956607Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.7956693Z               "line": 105
2026-06-10T22:49:44.7956794Z             },
2026-06-10T22:49:44.7956875Z             {
2026-06-10T22:49:44.7957003Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7957089Z               "line": 85
2026-06-10T22:49:44.7957175Z             },
2026-06-10T22:49:44.7957261Z             {
2026-06-10T22:49:44.7957390Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7957476Z               "line": 234
2026-06-10T22:49:44.7957570Z             },
2026-06-10T22:49:44.7957652Z             {
2026-06-10T22:49:44.7957772Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7957861Z               "line": 298
2026-06-10T22:49:44.7957947Z             },
2026-06-10T22:49:44.7958029Z             {
2026-06-10T22:49:44.7958157Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7958247Z               "line": 687
2026-06-10T22:49:44.7958332Z             },
2026-06-10T22:49:44.7958414Z             {
2026-06-10T22:49:44.7958540Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.7958630Z               "line": 101
2026-06-10T22:49:44.7958712Z             },
2026-06-10T22:49:44.7958803Z             {
2026-06-10T22:49:44.7958916Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7959103Z               "line": 193
2026-06-10T22:49:44.7959184Z             }
2026-06-10T22:49:44.7959273Z           ]
2026-06-10T22:49:44.7959366Z         },
2026-06-10T22:49:44.7959446Z         "int": {
2026-06-10T22:49:44.7959541Z           "complete": false,
2026-06-10T22:49:44.7959632Z           "evidence": []
2026-06-10T22:49:44.7959718Z         },
2026-06-10T22:49:44.7959799Z         "unit": {
2026-06-10T22:49:44.7959894Z           "complete": true,
2026-06-10T22:49:44.7959986Z           "evidence": [
2026-06-10T22:49:44.7960066Z             {
2026-06-10T22:49:44.7960195Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.7960281Z               "line": 927
2026-06-10T22:49:44.7960372Z             },
2026-06-10T22:49:44.7960452Z             {
2026-06-10T22:49:44.7960567Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T22:49:44.7960663Z               "line": 462
2026-06-10T22:49:44.7960743Z             }
2026-06-10T22:49:44.7960832Z           ]
2026-06-10T22:49:44.7960913Z         }
2026-06-10T22:49:44.7960999Z       }
2026-06-10T22:49:44.7961079Z     },
2026-06-10T22:49:44.7961163Z     {
2026-06-10T22:49:44.7961269Z       "id": "REQ-MESH-6",
2026-06-10T22:49:44.7962543Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-10T22:49:44.7962647Z       "requiredStages": [
2026-06-10T22:49:44.7962843Z         "impl",
2026-06-10T22:49:44.7962929Z         "unit"
2026-06-10T22:49:44.7963018Z       ],
2026-06-10T22:49:44.7963104Z       "stages": {
2026-06-10T22:49:44.7963191Z         "doc": {
2026-06-10T22:49:44.7963286Z           "complete": false,
2026-06-10T22:49:44.7963377Z           "evidence": []
2026-06-10T22:49:44.7963463Z         },
2026-06-10T22:49:44.7963549Z         "impl": {
2026-06-10T22:49:44.7963634Z           "complete": true,
2026-06-10T22:49:44.7963828Z           "evidence": [
2026-06-10T22:49:44.7963915Z             {
2026-06-10T22:49:44.7964028Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7964124Z               "line": 3091
2026-06-10T22:49:44.7964210Z             }
2026-06-10T22:49:44.7964292Z           ]
2026-06-10T22:49:44.7964376Z         },
2026-06-10T22:49:44.7964458Z         "int": {
2026-06-10T22:49:44.7964558Z           "complete": false,
2026-06-10T22:49:44.7964648Z           "evidence": []
2026-06-10T22:49:44.7964734Z         },
2026-06-10T22:49:44.7964826Z         "unit": {
2026-06-10T22:49:44.7964920Z           "complete": true,
2026-06-10T22:49:44.7965010Z           "evidence": [
2026-06-10T22:49:44.7965097Z             {
2026-06-10T22:49:44.7965202Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7965292Z               "line": 7532
2026-06-10T22:49:44.7965378Z             },
2026-06-10T22:49:44.7965460Z             {
2026-06-10T22:49:44.7965568Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7965669Z               "line": 7559
2026-06-10T22:49:44.7965751Z             },
2026-06-10T22:49:44.7965841Z             {
2026-06-10T22:49:44.7965940Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7966030Z               "line": 7583
2026-06-10T22:49:44.7966116Z             }
2026-06-10T22:49:44.7966204Z           ]
2026-06-10T22:49:44.7966290Z         }
2026-06-10T22:49:44.7966371Z       }
2026-06-10T22:49:44.7966458Z     },
2026-06-10T22:49:44.7966538Z     {
2026-06-10T22:49:44.7966633Z       "id": "REQ-MIGRATE-1",
2026-06-10T22:49:44.7966805Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-10T22:49:44.7966910Z       "requiredStages": [],
2026-06-10T22:49:44.7967001Z       "stages": {
2026-06-10T22:49:44.7967087Z         "doc": {
2026-06-10T22:49:44.7967182Z           "complete": false,
2026-06-10T22:49:44.7967267Z           "evidence": []
2026-06-10T22:49:44.7967354Z         },
2026-06-10T22:49:44.7967454Z         "impl": {
2026-06-10T22:49:44.7967548Z           "complete": false,
2026-06-10T22:49:44.7967640Z           "evidence": []
2026-06-10T22:49:44.7967721Z         },
2026-06-10T22:49:44.7967812Z         "int": {
2026-06-10T22:49:44.7967902Z           "complete": false,
2026-06-10T22:49:44.7967989Z           "evidence": []
2026-06-10T22:49:44.7968073Z         },
2026-06-10T22:49:44.7968169Z         "unit": {
2026-06-10T22:49:44.7968260Z           "complete": false,
2026-06-10T22:49:44.7968347Z           "evidence": []
2026-06-10T22:49:44.7968430Z         }
2026-06-10T22:49:44.7968522Z       }
2026-06-10T22:49:44.7968608Z     },
2026-06-10T22:49:44.7968694Z     {
2026-06-10T22:49:44.7968788Z       "id": "REQ-MSG-1",
2026-06-10T22:49:44.7969301Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-10T22:49:44.7969391Z       "requiredStages": [
2026-06-10T22:49:44.7969491Z         "impl",
2026-06-10T22:49:44.7969582Z         "unit",
2026-06-10T22:49:44.7969668Z         "int"
2026-06-10T22:49:44.7969753Z       ],
2026-06-10T22:49:44.7969838Z       "stages": {
2026-06-10T22:49:44.7969921Z         "doc": {
2026-06-10T22:49:44.7970011Z           "complete": false,
2026-06-10T22:49:44.7970101Z           "evidence": []
2026-06-10T22:49:44.7970183Z         },
2026-06-10T22:49:44.7970269Z         "impl": {
2026-06-10T22:49:44.7970364Z           "complete": true,
2026-06-10T22:49:44.7970454Z           "evidence": [
2026-06-10T22:49:44.7970664Z             {
2026-06-10T22:49:44.7970788Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7970885Z               "line": 28
2026-06-10T22:49:44.7970969Z             },
2026-06-10T22:49:44.7971050Z             {
2026-06-10T22:49:44.7971166Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7971256Z               "line": 94
2026-06-10T22:49:44.7971341Z             },
2026-06-10T22:49:44.7971526Z             {
2026-06-10T22:49:44.7971643Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7971733Z               "line": 127
2026-06-10T22:49:44.7971819Z             },
2026-06-10T22:49:44.7971906Z             {
2026-06-10T22:49:44.7972015Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7972105Z               "line": 149
2026-06-10T22:49:44.7972187Z             },
2026-06-10T22:49:44.7972273Z             {
2026-06-10T22:49:44.7972381Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7972478Z               "line": 174
2026-06-10T22:49:44.7972564Z             },
2026-06-10T22:49:44.7972649Z             {
2026-06-10T22:49:44.7972759Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-10T22:49:44.7972854Z               "line": 18
2026-06-10T22:49:44.7972940Z             },
2026-06-10T22:49:44.7973020Z             {
2026-06-10T22:49:44.7973131Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T22:49:44.7973240Z               "line": 13
2026-06-10T22:49:44.7973321Z             },
2026-06-10T22:49:44.7973408Z             {
2026-06-10T22:49:44.7973512Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T22:49:44.7973598Z               "line": 61
2026-06-10T22:49:44.7973679Z             },
2026-06-10T22:49:44.7973771Z             {
2026-06-10T22:49:44.7973879Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-10T22:49:44.7973965Z               "line": 10
2026-06-10T22:49:44.7974047Z             }
2026-06-10T22:49:44.7974128Z           ]
2026-06-10T22:49:44.7974227Z         },
2026-06-10T22:49:44.7974307Z         "int": {
2026-06-10T22:49:44.7974407Z           "complete": true,
2026-06-10T22:49:44.7974495Z           "evidence": [
2026-06-10T22:49:44.7974574Z             {
2026-06-10T22:49:44.7974713Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-10T22:49:44.7974808Z               "line": 9
2026-06-10T22:49:44.7974894Z             },
2026-06-10T22:49:44.7974975Z             {
2026-06-10T22:49:44.7975114Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-10T22:49:44.7975204Z               "line": 70
2026-06-10T22:49:44.7975285Z             },
2026-06-10T22:49:44.7975371Z             {
2026-06-10T22:49:44.7975495Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-10T22:49:44.7975585Z               "line": 129
2026-06-10T22:49:44.7975667Z             }
2026-06-10T22:49:44.7975748Z           ]
2026-06-10T22:49:44.7975834Z         },
2026-06-10T22:49:44.7975919Z         "unit": {
2026-06-10T22:49:44.7976015Z           "complete": true,
2026-06-10T22:49:44.7976096Z           "evidence": [
2026-06-10T22:49:44.7976177Z             {
2026-06-10T22:49:44.7976287Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7976373Z               "line": 203
2026-06-10T22:49:44.7976457Z             },
2026-06-10T22:49:44.7976533Z             {
2026-06-10T22:49:44.7976643Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7976728Z               "line": 232
2026-06-10T22:49:44.7976817Z             },
2026-06-10T22:49:44.7976897Z             {
2026-06-10T22:49:44.7977003Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7977094Z               "line": 277
2026-06-10T22:49:44.7977174Z             },
2026-06-10T22:49:44.7977251Z             {
2026-06-10T22:49:44.7977356Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7977437Z               "line": 300
2026-06-10T22:49:44.7977522Z             },
2026-06-10T22:49:44.7977685Z             {
2026-06-10T22:49:44.7977799Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T22:49:44.7977876Z               "line": 324
2026-06-10T22:49:44.7977962Z             },
2026-06-10T22:49:44.7978048Z             {
2026-06-10T22:49:44.7978157Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-10T22:49:44.7978253Z               "line": 203
2026-06-10T22:49:44.7978328Z             },
2026-06-10T22:49:44.7978490Z             {
2026-06-10T22:49:44.7978592Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-10T22:49:44.7978685Z               "line": 236
2026-06-10T22:49:44.7978762Z             },
2026-06-10T22:49:44.7978845Z             {
2026-06-10T22:49:44.7979029Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-10T22:49:44.7979116Z               "line": 250
2026-06-10T22:49:44.7979193Z             },
2026-06-10T22:49:44.7979273Z             {
2026-06-10T22:49:44.7979386Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-10T22:49:44.7979486Z               "line": 262
2026-06-10T22:49:44.7979563Z             },
2026-06-10T22:49:44.7979641Z             {
2026-06-10T22:49:44.7979746Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T22:49:44.7979842Z               "line": 158
2026-06-10T22:49:44.7979928Z             },
2026-06-10T22:49:44.7980008Z             {
2026-06-10T22:49:44.7980103Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T22:49:44.7980190Z               "line": 241
2026-06-10T22:49:44.7980285Z             },
2026-06-10T22:49:44.7980361Z             {
2026-06-10T22:49:44.7980467Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-10T22:49:44.7980547Z               "line": 68
2026-06-10T22:49:44.7980628Z             },
2026-06-10T22:49:44.7980714Z             {
2026-06-10T22:49:44.7980810Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-10T22:49:44.7980895Z               "line": 77
2026-06-10T22:49:44.7980971Z             },
2026-06-10T22:49:44.7981052Z             {
2026-06-10T22:49:44.7981154Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-10T22:49:44.7981252Z               "line": 83
2026-06-10T22:49:44.7981329Z             },
2026-06-10T22:49:44.7981411Z             {
2026-06-10T22:49:44.7981511Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-10T22:49:44.7981601Z               "line": 102
2026-06-10T22:49:44.7981677Z             }
2026-06-10T22:49:44.7981760Z           ]
2026-06-10T22:49:44.7981840Z         }
2026-06-10T22:49:44.7981920Z       }
2026-06-10T22:49:44.7982000Z     },
2026-06-10T22:49:44.7982082Z     {
2026-06-10T22:49:44.7982175Z       "id": "REQ-MSG-2",
2026-06-10T22:49:44.7982423Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-10T22:49:44.7982518Z       "requiredStages": [
2026-06-10T22:49:44.7982599Z         "impl",
2026-06-10T22:49:44.7982675Z         "unit"
2026-06-10T22:49:44.7982752Z       ],
2026-06-10T22:49:44.7982828Z       "stages": {
2026-06-10T22:49:44.7982913Z         "doc": {
2026-06-10T22:49:44.7983004Z           "complete": false,
2026-06-10T22:49:44.7983090Z           "evidence": []
2026-06-10T22:49:44.7983171Z         },
2026-06-10T22:49:44.7983256Z         "impl": {
2026-06-10T22:49:44.7983353Z           "complete": true,
2026-06-10T22:49:44.7983438Z           "evidence": [
2026-06-10T22:49:44.7983519Z             {
2026-06-10T22:49:44.7983619Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7983701Z               "line": 11
2026-06-10T22:49:44.7983781Z             },
2026-06-10T22:49:44.7983862Z             {
2026-06-10T22:49:44.7983963Z               "path": "crates/spt/src/main.rs",
2026-06-10T22:49:44.7984049Z               "line": 8
2026-06-10T22:49:44.7984129Z             }
2026-06-10T22:49:44.7984206Z           ]
2026-06-10T22:49:44.7984283Z         },
2026-06-10T22:49:44.7984373Z         "int": {
2026-06-10T22:49:44.7984468Z           "complete": false,
2026-06-10T22:49:44.7984544Z           "evidence": []
2026-06-10T22:49:44.7984735Z         },
2026-06-10T22:49:44.7984815Z         "unit": {
2026-06-10T22:49:44.7984905Z           "complete": true,
2026-06-10T22:49:44.7984982Z           "evidence": [
2026-06-10T22:49:44.7985073Z             {
2026-06-10T22:49:44.7985172Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7985269Z               "line": 5247
2026-06-10T22:49:44.7985359Z             },
2026-06-10T22:49:44.7985440Z             {
2026-06-10T22:49:44.7985646Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7985731Z               "line": 5296
2026-06-10T22:49:44.7985806Z             },
2026-06-10T22:49:44.7985888Z             {
2026-06-10T22:49:44.7985993Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7986084Z               "line": 5319
2026-06-10T22:49:44.7986164Z             },
2026-06-10T22:49:44.7986246Z             {
2026-06-10T22:49:44.7986341Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7986432Z               "line": 6776
2026-06-10T22:49:44.7986528Z             },
2026-06-10T22:49:44.7986609Z             {
2026-06-10T22:49:44.7986712Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7986789Z               "line": 6785
2026-06-10T22:49:44.7986872Z             },
2026-06-10T22:49:44.7986947Z             {
2026-06-10T22:49:44.7987050Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7987136Z               "line": 6799
2026-06-10T22:49:44.7987217Z             }
2026-06-10T22:49:44.7987297Z           ]
2026-06-10T22:49:44.7987377Z         }
2026-06-10T22:49:44.7987453Z       }
2026-06-10T22:49:44.7987539Z     },
2026-06-10T22:49:44.7987617Z     {
2026-06-10T22:49:44.7987696Z       "id": "REQ-MSG-3",
2026-06-10T22:49:44.7988058Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-10T22:49:44.7988160Z       "requiredStages": [
2026-06-10T22:49:44.7988236Z         "impl",
2026-06-10T22:49:44.7988331Z         "unit",
2026-06-10T22:49:44.7988412Z         "int"
2026-06-10T22:49:44.7988489Z       ],
2026-06-10T22:49:44.7988574Z       "stages": {
2026-06-10T22:49:44.7988655Z         "doc": {
2026-06-10T22:49:44.7988750Z           "complete": false,
2026-06-10T22:49:44.7988823Z           "evidence": []
2026-06-10T22:49:44.7988903Z         },
2026-06-10T22:49:44.7989080Z         "impl": {
2026-06-10T22:49:44.7989180Z           "complete": true,
2026-06-10T22:49:44.7989275Z           "evidence": [
2026-06-10T22:49:44.7989356Z             {
2026-06-10T22:49:44.7989476Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-10T22:49:44.7989556Z               "line": 19
2026-06-10T22:49:44.7989642Z             },
2026-06-10T22:49:44.7989719Z             {
2026-06-10T22:49:44.7989824Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T22:49:44.7989908Z               "line": 21
2026-06-10T22:49:44.7989989Z             },
2026-06-10T22:49:44.7990065Z             {
2026-06-10T22:49:44.7990183Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T22:49:44.7990277Z               "line": 48
2026-06-10T22:49:44.7990354Z             },
2026-06-10T22:49:44.7990431Z             {
2026-06-10T22:49:44.7990526Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T22:49:44.7990611Z               "line": 142
2026-06-10T22:49:44.7990697Z             }
2026-06-10T22:49:44.7990779Z           ]
2026-06-10T22:49:44.7990873Z         },
2026-06-10T22:49:44.7990945Z         "int": {
2026-06-10T22:49:44.7991032Z           "complete": true,
2026-06-10T22:49:44.7991117Z           "evidence": [
2026-06-10T22:49:44.7991188Z             {
2026-06-10T22:49:44.7991327Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-10T22:49:44.7991404Z               "line": 10
2026-06-10T22:49:44.7991489Z             },
2026-06-10T22:49:44.7991570Z             {
2026-06-10T22:49:44.7991695Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-10T22:49:44.7991889Z               "line": 70
2026-06-10T22:49:44.7991962Z             }
2026-06-10T22:49:44.7992048Z           ]
2026-06-10T22:49:44.7992127Z         },
2026-06-10T22:49:44.7992214Z         "unit": {
2026-06-10T22:49:44.7992305Z           "complete": true,
2026-06-10T22:49:44.7992395Z           "evidence": [
2026-06-10T22:49:44.7992489Z             {
2026-06-10T22:49:44.7992594Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T22:49:44.7992777Z               "line": 196
2026-06-10T22:49:44.7992854Z             },
2026-06-10T22:49:44.7992939Z             {
2026-06-10T22:49:44.7993050Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T22:49:44.7993144Z               "line": 215
2026-06-10T22:49:44.7993231Z             },
2026-06-10T22:49:44.7993303Z             {
2026-06-10T22:49:44.7993407Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T22:49:44.7993493Z               "line": 237
2026-06-10T22:49:44.7993584Z             }
2026-06-10T22:49:44.7993655Z           ]
2026-06-10T22:49:44.7993750Z         }
2026-06-10T22:49:44.7993840Z       }
2026-06-10T22:49:44.7993913Z     },
2026-06-10T22:49:44.7993989Z     {
2026-06-10T22:49:44.7994079Z       "id": "REQ-MSG-4",
2026-06-10T22:49:44.7994867Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-10T22:49:44.7994966Z       "requiredStages": [
2026-06-10T22:49:44.7995042Z         "impl",
2026-06-10T22:49:44.7995134Z         "unit",
2026-06-10T22:49:44.7995211Z         "int"
2026-06-10T22:49:44.7995295Z       ],
2026-06-10T22:49:44.7995389Z       "stages": {
2026-06-10T22:49:44.7995475Z         "doc": {
2026-06-10T22:49:44.7995572Z           "complete": false,
2026-06-10T22:49:44.7995666Z           "evidence": []
2026-06-10T22:49:44.7995756Z         },
2026-06-10T22:49:44.7995843Z         "impl": {
2026-06-10T22:49:44.7995948Z           "complete": true,
2026-06-10T22:49:44.7996033Z           "evidence": [
2026-06-10T22:49:44.7996114Z             {
2026-06-10T22:49:44.7996229Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T22:49:44.7996315Z               "line": 16
2026-06-10T22:49:44.7996400Z             },
2026-06-10T22:49:44.7996478Z             {
2026-06-10T22:49:44.7996587Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T22:49:44.7996677Z               "line": 25
2026-06-10T22:49:44.7996768Z             },
2026-06-10T22:49:44.7996864Z             {
2026-06-10T22:49:44.7996963Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T22:49:44.7997054Z               "line": 47
2026-06-10T22:49:44.7997126Z             },
2026-06-10T22:49:44.7997202Z             {
2026-06-10T22:49:44.7997316Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.7997402Z               "line": 363
2026-06-10T22:49:44.7997488Z             },
2026-06-10T22:49:44.7997568Z             {
2026-06-10T22:49:44.7997677Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.7997759Z               "line": 2236
2026-06-10T22:49:44.7997848Z             }
2026-06-10T22:49:44.7997923Z           ]
2026-06-10T22:49:44.7998013Z         },
2026-06-10T22:49:44.7998104Z         "int": {
2026-06-10T22:49:44.7998191Z           "complete": true,
2026-06-10T22:49:44.7998285Z           "evidence": [
2026-06-10T22:49:44.7998361Z             {
2026-06-10T22:49:44.7998477Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-10T22:49:44.7998557Z               "line": 98
2026-06-10T22:49:44.7998647Z             },
2026-06-10T22:49:44.7998720Z             {
2026-06-10T22:49:44.7998839Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-10T22:49:44.7998928Z               "line": 128
2026-06-10T22:49:44.7999078Z             }
2026-06-10T22:49:44.7999163Z           ]
2026-06-10T22:49:44.7999238Z         },
2026-06-10T22:49:44.7999330Z         "unit": {
2026-06-10T22:49:44.7999553Z           "complete": true,
2026-06-10T22:49:44.7999640Z           "evidence": [
2026-06-10T22:49:44.7999726Z             {
2026-06-10T22:49:44.7999825Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T22:49:44.7999916Z               "line": 62
2026-06-10T22:49:44.7999989Z             },
2026-06-10T22:49:44.8000079Z             {
2026-06-10T22:49:44.8000183Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T22:49:44.8000346Z               "line": 73
2026-06-10T22:49:44.8000436Z             },
2026-06-10T22:49:44.8000516Z             {
2026-06-10T22:49:44.8000626Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T22:49:44.8000711Z               "line": 84
2026-06-10T22:49:44.8000790Z             },
2026-06-10T22:49:44.8000861Z             {
2026-06-10T22:49:44.8000962Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T22:49:44.8001043Z               "line": 96
2026-06-10T22:49:44.8001119Z             },
2026-06-10T22:49:44.8001214Z             {
2026-06-10T22:49:44.8001320Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T22:49:44.8001411Z               "line": 105
2026-06-10T22:49:44.8001500Z             },
2026-06-10T22:49:44.8001573Z             {
2026-06-10T22:49:44.8001672Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T22:49:44.8001763Z               "line": 120
2026-06-10T22:49:44.8001839Z             }
2026-06-10T22:49:44.8001926Z           ]
2026-06-10T22:49:44.8002015Z         }
2026-06-10T22:49:44.8002092Z       }
2026-06-10T22:49:44.8002163Z     },
2026-06-10T22:49:44.8002250Z     {
2026-06-10T22:49:44.8002339Z       "id": "REQ-NET-1",
2026-06-10T22:49:44.8002512Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-10T22:49:44.8002608Z       "requiredStages": [
2026-06-10T22:49:44.8002701Z         "impl",
2026-06-10T22:49:44.8002793Z         "unit",
2026-06-10T22:49:44.8002865Z         "int"
2026-06-10T22:49:44.8002955Z       ],
2026-06-10T22:49:44.8003035Z       "stages": {
2026-06-10T22:49:44.8003134Z         "doc": {
2026-06-10T22:49:44.8003226Z           "complete": false,
2026-06-10T22:49:44.8003305Z           "evidence": []
2026-06-10T22:49:44.8003390Z         },
2026-06-10T22:49:44.8003476Z         "impl": {
2026-06-10T22:49:44.8003567Z           "complete": true,
2026-06-10T22:49:44.8003662Z           "evidence": [
2026-06-10T22:49:44.8003748Z             {
2026-06-10T22:49:44.8003859Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.8003954Z               "line": 54
2026-06-10T22:49:44.8004048Z             },
2026-06-10T22:49:44.8004120Z             {
2026-06-10T22:49:44.8004234Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.8004324Z               "line": 594
2026-06-10T22:49:44.8004415Z             },
2026-06-10T22:49:44.8004497Z             {
2026-06-10T22:49:44.8004601Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-10T22:49:44.8004697Z               "line": 69
2026-06-10T22:49:44.8004788Z             },
2026-06-10T22:49:44.8004878Z             {
2026-06-10T22:49:44.8004992Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8005084Z               "line": 97
2026-06-10T22:49:44.8005156Z             },
2026-06-10T22:49:44.8005235Z             {
2026-06-10T22:49:44.8005355Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8005447Z               "line": 159
2026-06-10T22:49:44.8005540Z             },
2026-06-10T22:49:44.8005612Z             {
2026-06-10T22:49:44.8005728Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8005799Z               "line": 175
2026-06-10T22:49:44.8005883Z             },
2026-06-10T22:49:44.8005968Z             {
2026-06-10T22:49:44.8006079Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8006165Z               "line": 190
2026-06-10T22:49:44.8006241Z             },
2026-06-10T22:49:44.8006316Z             {
2026-06-10T22:49:44.8006508Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8006598Z               "line": 271
2026-06-10T22:49:44.8006689Z             },
2026-06-10T22:49:44.8006761Z             {
2026-06-10T22:49:44.8006870Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8006955Z               "line": 306
2026-06-10T22:49:44.8007038Z             },
2026-06-10T22:49:44.8007128Z             {
2026-06-10T22:49:44.8007304Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8007395Z               "line": 312
2026-06-10T22:49:44.8007466Z             },
2026-06-10T22:49:44.8007552Z             {
2026-06-10T22:49:44.8007663Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8007753Z               "line": 318
2026-06-10T22:49:44.8007837Z             },
2026-06-10T22:49:44.8007914Z             {
2026-06-10T22:49:44.8008030Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8008114Z               "line": 334
2026-06-10T22:49:44.8008199Z             },
2026-06-10T22:49:44.8008270Z             {
2026-06-10T22:49:44.8008389Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8008479Z               "line": 354
2026-06-10T22:49:44.8008559Z             },
2026-06-10T22:49:44.8008646Z             {
2026-06-10T22:49:44.8008769Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-10T22:49:44.8008869Z               "line": 35
2026-06-10T22:49:44.8009023Z             },
2026-06-10T22:49:44.8009108Z             {
2026-06-10T22:49:44.8009227Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-10T22:49:44.8009313Z               "line": 85
2026-06-10T22:49:44.8009399Z             },
2026-06-10T22:49:44.8009484Z             {
2026-06-10T22:49:44.8009600Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.8009685Z               "line": 135
2026-06-10T22:49:44.8009775Z             },
2026-06-10T22:49:44.8009861Z             {
2026-06-10T22:49:44.8009976Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8010066Z               "line": 2082
2026-06-10T22:49:44.8010151Z             },
2026-06-10T22:49:44.8010239Z             {
2026-06-10T22:49:44.8010343Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.8010433Z               "line": 17
2026-06-10T22:49:44.8010520Z             }
2026-06-10T22:49:44.8010601Z           ]
2026-06-10T22:49:44.8010695Z         },
2026-06-10T22:49:44.8010781Z         "int": {
2026-06-10T22:49:44.8010878Z           "complete": true,
2026-06-10T22:49:44.8010963Z           "evidence": [
2026-06-10T22:49:44.8011057Z             {
2026-06-10T22:49:44.8011181Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.8011271Z               "line": 341
2026-06-10T22:49:44.8011360Z             },
2026-06-10T22:49:44.8011440Z             {
2026-06-10T22:49:44.8011571Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8011656Z               "line": 605
2026-06-10T22:49:44.8011750Z             },
2026-06-10T22:49:44.8011837Z             {
2026-06-10T22:49:44.8011947Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8012041Z               "line": 878
2026-06-10T22:49:44.8012123Z             }
2026-06-10T22:49:44.8012209Z           ]
2026-06-10T22:49:44.8012290Z         },
2026-06-10T22:49:44.8012375Z         "unit": {
2026-06-10T22:49:44.8012476Z           "complete": true,
2026-06-10T22:49:44.8012566Z           "evidence": [
2026-06-10T22:49:44.8012652Z             {
2026-06-10T22:49:44.8012767Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.8012863Z               "line": 650
2026-06-10T22:49:44.8012952Z             },
2026-06-10T22:49:44.8013033Z             {
2026-06-10T22:49:44.8013149Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.8013238Z               "line": 685
2026-06-10T22:49:44.8013324Z             },
2026-06-10T22:49:44.8013407Z             {
2026-06-10T22:49:44.8013633Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.8013724Z               "line": 932
2026-06-10T22:49:44.8013810Z             },
2026-06-10T22:49:44.8013893Z             {
2026-06-10T22:49:44.8014007Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-10T22:49:44.8014093Z               "line": 152
2026-06-10T22:49:44.8014176Z             },
2026-06-10T22:49:44.8014360Z             {
2026-06-10T22:49:44.8014489Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8014579Z               "line": 442
2026-06-10T22:49:44.8014670Z             },
2026-06-10T22:49:44.8014752Z             {
2026-06-10T22:49:44.8014871Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8014956Z               "line": 456
2026-06-10T22:49:44.8015048Z             },
2026-06-10T22:49:44.8015132Z             {
2026-06-10T22:49:44.8015247Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8015343Z               "line": 475
2026-06-10T22:49:44.8015429Z             },
2026-06-10T22:49:44.8015515Z             {
2026-06-10T22:49:44.8015629Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-10T22:49:44.8015725Z               "line": 119
2026-06-10T22:49:44.8015809Z             },
2026-06-10T22:49:44.8015891Z             {
2026-06-10T22:49:44.8016007Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-10T22:49:44.8016101Z               "line": 162
2026-06-10T22:49:44.8016186Z             },
2026-06-10T22:49:44.8016269Z             {
2026-06-10T22:49:44.8016383Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T22:49:44.8016476Z               "line": 492
2026-06-10T22:49:44.8016557Z             },
2026-06-10T22:49:44.8016644Z             {
2026-06-10T22:49:44.8016749Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.8016839Z               "line": 615
2026-06-10T22:49:44.8016925Z             },
2026-06-10T22:49:44.8017016Z             {
2026-06-10T22:49:44.8017124Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.8017210Z               "line": 1004
2026-06-10T22:49:44.8017302Z             }
2026-06-10T22:49:44.8017383Z           ]
2026-06-10T22:49:44.8017468Z         }
2026-06-10T22:49:44.8017550Z       }
2026-06-10T22:49:44.8017641Z     },
2026-06-10T22:49:44.8017726Z     {
2026-06-10T22:49:44.8017816Z       "id": "REQ-NET-2",
2026-06-10T22:49:44.8017998Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-10T22:49:44.8018093Z       "requiredStages": [
2026-06-10T22:49:44.8018179Z         "impl"
2026-06-10T22:49:44.8018261Z       ],
2026-06-10T22:49:44.8018350Z       "stages": {
2026-06-10T22:49:44.8018441Z         "doc": {
2026-06-10T22:49:44.8018532Z           "complete": false,
2026-06-10T22:49:44.8018623Z           "evidence": []
2026-06-10T22:49:44.8018703Z         },
2026-06-10T22:49:44.8018793Z         "impl": {
2026-06-10T22:49:44.8018888Z           "complete": true,
2026-06-10T22:49:44.8019072Z           "evidence": [
2026-06-10T22:49:44.8019158Z             {
2026-06-10T22:49:44.8019278Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T22:49:44.8019368Z               "line": 57
2026-06-10T22:49:44.8019443Z             },
2026-06-10T22:49:44.8021655Z             {
2026-06-10T22:49:44.8021817Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8021939Z               "line": 71
2026-06-10T22:49:44.8022025Z             },
2026-06-10T22:49:44.8022106Z             {
2026-06-10T22:49:44.8022240Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8022325Z               "line": 81
2026-06-10T22:49:44.8022412Z             },
2026-06-10T22:49:44.8022492Z             {
2026-06-10T22:49:44.8022611Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8022703Z               "line": 159
2026-06-10T22:49:44.8022788Z             },
2026-06-10T22:49:44.8022869Z             {
2026-06-10T22:49:44.8023122Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8023212Z               "line": 175
2026-06-10T22:49:44.8023303Z             },
2026-06-10T22:49:44.8023380Z             {
2026-06-10T22:49:44.8023502Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T22:49:44.8023589Z               "line": 190
2026-06-10T22:49:44.8023680Z             }
2026-06-10T22:49:44.8023880Z           ]
2026-06-10T22:49:44.8023962Z         },
2026-06-10T22:49:44.8024057Z         "int": {
2026-06-10T22:49:44.8024146Z           "complete": false,
2026-06-10T22:49:44.8024241Z           "evidence": []
2026-06-10T22:49:44.8024322Z         },
2026-06-10T22:49:44.8024416Z         "unit": {
2026-06-10T22:49:44.8024515Z           "complete": true,
2026-06-10T22:49:44.8024606Z           "evidence": [
2026-06-10T22:49:44.8024693Z             {
2026-06-10T22:49:44.8024820Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T22:49:44.8024920Z               "line": 402
2026-06-10T22:49:44.8025021Z             }
2026-06-10T22:49:44.8025112Z           ]
2026-06-10T22:49:44.8025202Z         }
2026-06-10T22:49:44.8025293Z       }
2026-06-10T22:49:44.8025388Z     },
2026-06-10T22:49:44.8025473Z     {
2026-06-10T22:49:44.8025570Z       "id": "REQ-NET-3",
2026-06-10T22:49:44.8025756Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-10T22:49:44.8025860Z       "requiredStages": [
2026-06-10T22:49:44.8025956Z         "impl",
2026-06-10T22:49:44.8026051Z         "unit"
2026-06-10T22:49:44.8026141Z       ],
2026-06-10T22:49:44.8026233Z       "stages": {
2026-06-10T22:49:44.8026327Z         "doc": {
2026-06-10T22:49:44.8026423Z           "complete": false,
2026-06-10T22:49:44.8026519Z           "evidence": []
2026-06-10T22:49:44.8026610Z         },
2026-06-10T22:49:44.8026703Z         "impl": {
2026-06-10T22:49:44.8026795Z           "complete": true,
2026-06-10T22:49:44.8026891Z           "evidence": [
2026-06-10T22:49:44.8026985Z             {
2026-06-10T22:49:44.8027117Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.8027213Z               "line": 39
2026-06-10T22:49:44.8027300Z             },
2026-06-10T22:49:44.8027394Z             {
2026-06-10T22:49:44.8027509Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.8027609Z               "line": 182
2026-06-10T22:49:44.8027699Z             },
2026-06-10T22:49:44.8027785Z             {
2026-06-10T22:49:44.8027914Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T22:49:44.8028004Z               "line": 333
2026-06-10T22:49:44.8028100Z             },
2026-06-10T22:49:44.8028192Z             {
2026-06-10T22:49:44.8028315Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-10T22:49:44.8028414Z               "line": 36
2026-06-10T22:49:44.8028502Z             },
2026-06-10T22:49:44.8028596Z             {
2026-06-10T22:49:44.8028729Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8028836Z               "line": 158
2026-06-10T22:49:44.8028929Z             },
2026-06-10T22:49:44.8029107Z             {
2026-06-10T22:49:44.8029253Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8029348Z               "line": 212
2026-06-10T22:49:44.8029444Z             },
2026-06-10T22:49:44.8029528Z             {
2026-06-10T22:49:44.8029656Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8029761Z               "line": 233
2026-06-10T22:49:44.8029852Z             },
2026-06-10T22:49:44.8029942Z             {
2026-06-10T22:49:44.8030066Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8030166Z               "line": 291
2026-06-10T22:49:44.8030256Z             },
2026-06-10T22:49:44.8030347Z             {
2026-06-10T22:49:44.8030471Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8030561Z               "line": 310
2026-06-10T22:49:44.8030657Z             },
2026-06-10T22:49:44.8030848Z             {
2026-06-10T22:49:44.8030976Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8031068Z               "line": 348
2026-06-10T22:49:44.8031158Z             },
2026-06-10T22:49:44.8031248Z             {
2026-06-10T22:49:44.8031369Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8031468Z               "line": 393
2026-06-10T22:49:44.8031558Z             },
2026-06-10T22:49:44.8031740Z             {
2026-06-10T22:49:44.8031868Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8031969Z               "line": 406
2026-06-10T22:49:44.8032060Z             },
2026-06-10T22:49:44.8032144Z             {
2026-06-10T22:49:44.8032263Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T22:49:44.8032349Z               "line": 29
2026-06-10T22:49:44.8032437Z             },
2026-06-10T22:49:44.8032513Z             {
2026-06-10T22:49:44.8032638Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T22:49:44.8032733Z               "line": 72
2026-06-10T22:49:44.8032823Z             },
2026-06-10T22:49:44.8032909Z             {
2026-06-10T22:49:44.8033029Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T22:49:44.8033123Z               "line": 123
2026-06-10T22:49:44.8033214Z             }
2026-06-10T22:49:44.8033291Z           ]
2026-06-10T22:49:44.8033382Z         },
2026-06-10T22:49:44.8033476Z         "int": {
2026-06-10T22:49:44.8033572Z           "complete": false,
2026-06-10T22:49:44.8033663Z           "evidence": []
2026-06-10T22:49:44.8033753Z         },
2026-06-10T22:49:44.8033839Z         "unit": {
2026-06-10T22:49:44.8033931Z           "complete": true,
2026-06-10T22:49:44.8034025Z           "evidence": [
2026-06-10T22:49:44.8034111Z             {
2026-06-10T22:49:44.8034236Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-10T22:49:44.8034330Z               "line": 223
2026-06-10T22:49:44.8034426Z             },
2026-06-10T22:49:44.8034522Z             {
2026-06-10T22:49:44.8034641Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-10T22:49:44.8034734Z               "line": 351
2026-06-10T22:49:44.8034825Z             },
2026-06-10T22:49:44.8034915Z             {
2026-06-10T22:49:44.8035023Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-10T22:49:44.8035113Z               "line": 502
2026-06-10T22:49:44.8035204Z             },
2026-06-10T22:49:44.8035296Z             {
2026-06-10T22:49:44.8035418Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-10T22:49:44.8035510Z               "line": 93
2026-06-10T22:49:44.8035605Z             },
2026-06-10T22:49:44.8035695Z             {
2026-06-10T22:49:44.8035810Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-10T22:49:44.8035906Z               "line": 142
2026-06-10T22:49:44.8035987Z             },
2026-06-10T22:49:44.8036076Z             {
2026-06-10T22:49:44.8036192Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T22:49:44.8036291Z               "line": 315
2026-06-10T22:49:44.8036377Z             },
2026-06-10T22:49:44.8036469Z             {
2026-06-10T22:49:44.8036582Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T22:49:44.8036677Z               "line": 355
2026-06-10T22:49:44.8036764Z             },
2026-06-10T22:49:44.8036850Z             {
2026-06-10T22:49:44.8036983Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T22:49:44.8037113Z               "line": 494
2026-06-10T22:49:44.8037202Z             }
2026-06-10T22:49:44.8037293Z           ]
2026-06-10T22:49:44.8037379Z         }
2026-06-10T22:49:44.8037470Z       }
2026-06-10T22:49:44.8037559Z     },
2026-06-10T22:49:44.8037644Z     {
2026-06-10T22:49:44.8037750Z       "id": "REQ-NODE-IDENTITY",
2026-06-10T22:49:44.8037983Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-10T22:49:44.8038093Z       "requiredStages": [
2026-06-10T22:49:44.8038189Z         "impl",
2026-06-10T22:49:44.8038355Z         "unit"
2026-06-10T22:49:44.8038447Z       ],
2026-06-10T22:49:44.8038537Z       "stages": {
2026-06-10T22:49:44.8038626Z         "doc": {
2026-06-10T22:49:44.8038732Z           "complete": false,
2026-06-10T22:49:44.8038822Z           "evidence": []
2026-06-10T22:49:44.8038903Z         },
2026-06-10T22:49:44.8039071Z         "impl": {
2026-06-10T22:49:44.8039170Z           "complete": true,
2026-06-10T22:49:44.8039372Z           "evidence": [
2026-06-10T22:49:44.8039456Z             {
2026-06-10T22:49:44.8039595Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T22:49:44.8039696Z               "line": 60
2026-06-10T22:49:44.8039781Z             },
2026-06-10T22:49:44.8039870Z             {
2026-06-10T22:49:44.8039989Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T22:49:44.8040093Z               "line": 68
2026-06-10T22:49:44.8040183Z             },
2026-06-10T22:49:44.8040273Z             {
2026-06-10T22:49:44.8040393Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T22:49:44.8040497Z               "line": 86
2026-06-10T22:49:44.8040588Z             },
2026-06-10T22:49:44.8040670Z             {
2026-06-10T22:49:44.8040788Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T22:49:44.8040883Z               "line": 120
2026-06-10T22:49:44.8040970Z             },
2026-06-10T22:49:44.8041060Z             {
2026-06-10T22:49:44.8041179Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T22:49:44.8041275Z               "line": 127
2026-06-10T22:49:44.8041365Z             },
2026-06-10T22:49:44.8041455Z             {
2026-06-10T22:49:44.8041571Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T22:49:44.8041670Z               "line": 143
2026-06-10T22:49:44.8041756Z             },
2026-06-10T22:49:44.8041846Z             {
2026-06-10T22:49:44.8041967Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-10T22:49:44.8042061Z               "line": 16
2026-06-10T22:49:44.8042166Z             }
2026-06-10T22:49:44.8042254Z           ]
2026-06-10T22:49:44.8042342Z         },
2026-06-10T22:49:44.8042428Z         "int": {
2026-06-10T22:49:44.8042525Z           "complete": false,
2026-06-10T22:49:44.8042620Z           "evidence": []
2026-06-10T22:49:44.8042704Z         },
2026-06-10T22:49:44.8042794Z         "unit": {
2026-06-10T22:49:44.8042895Z           "complete": true,
2026-06-10T22:49:44.8042997Z           "evidence": [
2026-06-10T22:49:44.8043088Z             {
2026-06-10T22:49:44.8043207Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T22:49:44.8043303Z               "line": 199
2026-06-10T22:49:44.8043388Z             },
2026-06-10T22:49:44.8043479Z             {
2026-06-10T22:49:44.8043598Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T22:49:44.8043688Z               "line": 218
2026-06-10T22:49:44.8043784Z             },
2026-06-10T22:49:44.8043871Z             {
2026-06-10T22:49:44.8043989Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T22:49:44.8044094Z               "line": 234
2026-06-10T22:49:44.8044185Z             },
2026-06-10T22:49:44.8044280Z             {
2026-06-10T22:49:44.8044399Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T22:49:44.8044491Z               "line": 256
2026-06-10T22:49:44.8044580Z             },
2026-06-10T22:49:44.8044671Z             {
2026-06-10T22:49:44.8044782Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-10T22:49:44.8044890Z               "line": 124
2026-06-10T22:49:44.8044981Z             },
2026-06-10T22:49:44.8045068Z             {
2026-06-10T22:49:44.8045187Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-10T22:49:44.8045276Z               "line": 140
2026-06-10T22:49:44.8045370Z             },
2026-06-10T22:49:44.8045457Z             {
2026-06-10T22:49:44.8045574Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-10T22:49:44.8045668Z               "line": 155
2026-06-10T22:49:44.8045856Z             }
2026-06-10T22:49:44.8045950Z           ]
2026-06-10T22:49:44.8046031Z         }
2026-06-10T22:49:44.8046123Z       }
2026-06-10T22:49:44.8046208Z     },
2026-06-10T22:49:44.8046298Z     {
2026-06-10T22:49:44.8046399Z       "id": "REQ-NOTIF-1",
2026-06-10T22:49:44.8046747Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-10T22:49:44.8046932Z       "requiredStages": [
2026-06-10T22:49:44.8047029Z         "impl",
2026-06-10T22:49:44.8047124Z         "unit",
2026-06-10T22:49:44.8047209Z         "int"
2026-06-10T22:49:44.8047300Z       ],
2026-06-10T22:49:44.8047386Z       "stages": {
2026-06-10T22:49:44.8047476Z         "doc": {
2026-06-10T22:49:44.8047576Z           "complete": false,
2026-06-10T22:49:44.8047668Z           "evidence": []
2026-06-10T22:49:44.8047753Z         },
2026-06-10T22:49:44.8047838Z         "impl": {
2026-06-10T22:49:44.8047940Z           "complete": true,
2026-06-10T22:49:44.8048040Z           "evidence": [
2026-06-10T22:49:44.8048124Z             {
2026-06-10T22:49:44.8048252Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.8048348Z               "line": 514
2026-06-10T22:49:44.8048439Z             },
2026-06-10T22:49:44.8048523Z             {
2026-06-10T22:49:44.8048644Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8048739Z               "line": 30
2026-06-10T22:49:44.8048833Z             },
2026-06-10T22:49:44.8048920Z             {
2026-06-10T22:49:44.8049125Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8049220Z               "line": 69
2026-06-10T22:49:44.8049297Z             },
2026-06-10T22:49:44.8049378Z             {
2026-06-10T22:49:44.8049491Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8049584Z               "line": 93
2026-06-10T22:49:44.8049674Z             },
2026-06-10T22:49:44.8049764Z             {
2026-06-10T22:49:44.8049879Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8049984Z               "line": 107
2026-06-10T22:49:44.8050073Z             },
2026-06-10T22:49:44.8050155Z             {
2026-06-10T22:49:44.8050271Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8050369Z               "line": 142
2026-06-10T22:49:44.8050469Z             },
2026-06-10T22:49:44.8050564Z             {
2026-06-10T22:49:44.8050686Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8050776Z               "line": 187
2026-06-10T22:49:44.8050867Z             },
2026-06-10T22:49:44.8050953Z             {
2026-06-10T22:49:44.8051071Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8051157Z               "line": 258
2026-06-10T22:49:44.8051249Z             },
2026-06-10T22:49:44.8051339Z             {
2026-06-10T22:49:44.8051448Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8051545Z               "line": 368
2026-06-10T22:49:44.8051635Z             },
2026-06-10T22:49:44.8051729Z             {
2026-06-10T22:49:44.8051840Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8051935Z               "line": 468
2026-06-10T22:49:44.8052025Z             },
2026-06-10T22:49:44.8052111Z             {
2026-06-10T22:49:44.8052236Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T22:49:44.8052326Z               "line": 24
2026-06-10T22:49:44.8052426Z             },
2026-06-10T22:49:44.8052513Z             {
2026-06-10T22:49:44.8052636Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T22:49:44.8052731Z               "line": 34
2026-06-10T22:49:44.8052823Z             },
2026-06-10T22:49:44.8052912Z             {
2026-06-10T22:49:44.8053027Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T22:49:44.8053123Z               "line": 60
2026-06-10T22:49:44.8053213Z             },
2026-06-10T22:49:44.8053307Z             {
2026-06-10T22:49:44.8053525Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T22:49:44.8053619Z               "line": 82
2026-06-10T22:49:44.8053710Z             },
2026-06-10T22:49:44.8053796Z             {
2026-06-10T22:49:44.8053915Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T22:49:44.8054005Z               "line": 94
2026-06-10T22:49:44.8054097Z             },
2026-06-10T22:49:44.8054188Z             {
2026-06-10T22:49:44.8054426Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.8054521Z               "line": 43
2026-06-10T22:49:44.8054611Z             },
2026-06-10T22:49:44.8054702Z             {
2026-06-10T22:49:44.8054821Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.8054921Z               "line": 96
2026-06-10T22:49:44.8055017Z             },
2026-06-10T22:49:44.8055103Z             {
2026-06-10T22:49:44.8055226Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-10T22:49:44.8055318Z               "line": 20
2026-06-10T22:49:44.8055422Z             },
2026-06-10T22:49:44.8055517Z             {
2026-06-10T22:49:44.8055638Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-10T22:49:44.8055733Z               "line": 30
2026-06-10T22:49:44.8055822Z             },
2026-06-10T22:49:44.8055911Z             {
2026-06-10T22:49:44.8056027Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-10T22:49:44.8056120Z               "line": 50
2026-06-10T22:49:44.8056224Z             },
2026-06-10T22:49:44.8056315Z             {
2026-06-10T22:49:44.8056435Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8056525Z               "line": 28
2026-06-10T22:49:44.8056615Z             },
2026-06-10T22:49:44.8056702Z             {
2026-06-10T22:49:44.8056815Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8056911Z               "line": 126
2026-06-10T22:49:44.8056997Z             },
2026-06-10T22:49:44.8057087Z             {
2026-06-10T22:49:44.8057201Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8057298Z               "line": 161
2026-06-10T22:49:44.8057383Z             },
2026-06-10T22:49:44.8057473Z             {
2026-06-10T22:49:44.8057589Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8057679Z               "line": 202
2026-06-10T22:49:44.8057769Z             },
2026-06-10T22:49:44.8057855Z             {
2026-06-10T22:49:44.8057979Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8058069Z               "line": 213
2026-06-10T22:49:44.8058160Z             },
2026-06-10T22:49:44.8058252Z             {
2026-06-10T22:49:44.8058365Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8058456Z               "line": 238
2026-06-10T22:49:44.8058543Z             },
2026-06-10T22:49:44.8058633Z             {
2026-06-10T22:49:44.8058741Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8058841Z               "line": 261
2026-06-10T22:49:44.8059037Z             },
2026-06-10T22:49:44.8059132Z             {
2026-06-10T22:49:44.8059252Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.8059342Z               "line": 63
2026-06-10T22:49:44.8059436Z             }
2026-06-10T22:49:44.8059524Z           ]
2026-06-10T22:49:44.8059623Z         },
2026-06-10T22:49:44.8059714Z         "int": {
2026-06-10T22:49:44.8059809Z           "complete": true,
2026-06-10T22:49:44.8059929Z           "evidence": [
2026-06-10T22:49:44.8060009Z             {
2026-06-10T22:49:44.8060139Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.8060229Z               "line": 285
2026-06-10T22:49:44.8060357Z             },
2026-06-10T22:49:44.8060459Z             {
2026-06-10T22:49:44.8060577Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-10T22:49:44.8060672Z               "line": 102
2026-06-10T22:49:44.8060753Z             },
2026-06-10T22:49:44.8060849Z             {
2026-06-10T22:49:44.8061066Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8061162Z               "line": 614
2026-06-10T22:49:44.8061260Z             },
2026-06-10T22:49:44.8061350Z             {
2026-06-10T22:49:44.8061465Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8061561Z               "line": 1007
2026-06-10T22:49:44.8061655Z             }
2026-06-10T22:49:44.8061742Z           ]
2026-06-10T22:49:44.8061932Z         },
2026-06-10T22:49:44.8062023Z         "unit": {
2026-06-10T22:49:44.8062114Z           "complete": true,
2026-06-10T22:49:44.8062209Z           "evidence": [
2026-06-10T22:49:44.8062294Z             {
2026-06-10T22:49:44.8062410Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8062504Z               "line": 561
2026-06-10T22:49:44.8062585Z             },
2026-06-10T22:49:44.8062676Z             {
2026-06-10T22:49:44.8062786Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8062891Z               "line": 610
2026-06-10T22:49:44.8062981Z             },
2026-06-10T22:49:44.8063073Z             {
2026-06-10T22:49:44.8063191Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8063282Z               "line": 713
2026-06-10T22:49:44.8063369Z             },
2026-06-10T22:49:44.8063454Z             {
2026-06-10T22:49:44.8063577Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8063674Z               "line": 745
2026-06-10T22:49:44.8063755Z             },
2026-06-10T22:49:44.8063848Z             {
2026-06-10T22:49:44.8063963Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8064058Z               "line": 813
2026-06-10T22:49:44.8064146Z             },
2026-06-10T22:49:44.8064237Z             {
2026-06-10T22:49:44.8064347Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8064438Z               "line": 871
2026-06-10T22:49:44.8064532Z             },
2026-06-10T22:49:44.8064614Z             {
2026-06-10T22:49:44.8064738Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8064827Z               "line": 1141
2026-06-10T22:49:44.8064934Z             },
2026-06-10T22:49:44.8065024Z             {
2026-06-10T22:49:44.8065147Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T22:49:44.8065243Z               "line": 157
2026-06-10T22:49:44.8065334Z             },
2026-06-10T22:49:44.8065429Z             {
2026-06-10T22:49:44.8065553Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T22:49:44.8065649Z               "line": 250
2026-06-10T22:49:44.8065733Z             },
2026-06-10T22:49:44.8065825Z             {
2026-06-10T22:49:44.8065945Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T22:49:44.8066038Z               "line": 273
2026-06-10T22:49:44.8066135Z             },
2026-06-10T22:49:44.8066221Z             {
2026-06-10T22:49:44.8066349Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.8066448Z               "line": 341
2026-06-10T22:49:44.8066543Z             },
2026-06-10T22:49:44.8066638Z             {
2026-06-10T22:49:44.8066756Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T22:49:44.8066856Z               "line": 373
2026-06-10T22:49:44.8066942Z             },
2026-06-10T22:49:44.8067037Z             {
2026-06-10T22:49:44.8067166Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-10T22:49:44.8067267Z               "line": 131
2026-06-10T22:49:44.8067356Z             },
2026-06-10T22:49:44.8067447Z             {
2026-06-10T22:49:44.8067562Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-10T22:49:44.8067662Z               "line": 72
2026-06-10T22:49:44.8067757Z             },
2026-06-10T22:49:44.8067849Z             {
2026-06-10T22:49:44.8067962Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-10T22:49:44.8068058Z               "line": 97
2026-06-10T22:49:44.8068144Z             },
2026-06-10T22:49:44.8068315Z             {
2026-06-10T22:49:44.8068430Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8068526Z               "line": 379
2026-06-10T22:49:44.8068615Z             },
2026-06-10T22:49:44.8068711Z             {
2026-06-10T22:49:44.8068827Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8068920Z               "line": 417
2026-06-10T22:49:44.8069108Z             },
2026-06-10T22:49:44.8069297Z             {
2026-06-10T22:49:44.8069415Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8069512Z               "line": 433
2026-06-10T22:49:44.8069602Z             },
2026-06-10T22:49:44.8069687Z             {
2026-06-10T22:49:44.8069802Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8069893Z               "line": 472
2026-06-10T22:49:44.8069982Z             },
2026-06-10T22:49:44.8070075Z             {
2026-06-10T22:49:44.8070193Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8070293Z               "line": 489
2026-06-10T22:49:44.8070384Z             },
2026-06-10T22:49:44.8070470Z             {
2026-06-10T22:49:44.8070583Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8070679Z               "line": 517
2026-06-10T22:49:44.8070775Z             },
2026-06-10T22:49:44.8070865Z             {
2026-06-10T22:49:44.8070975Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T22:49:44.8071085Z               "line": 548
2026-06-10T22:49:44.8071170Z             },
2026-06-10T22:49:44.8071261Z             {
2026-06-10T22:49:44.8071376Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.8071475Z               "line": 455
2026-06-10T22:49:44.8071565Z             }
2026-06-10T22:49:44.8071655Z           ]
2026-06-10T22:49:44.8071746Z         }
2026-06-10T22:49:44.8071835Z       }
2026-06-10T22:49:44.8071925Z     },
2026-06-10T22:49:44.8072011Z     {
2026-06-10T22:49:44.8072112Z       "id": "REQ-NOTIF-2",
2026-06-10T22:49:44.8072384Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-10T22:49:44.8072488Z       "requiredStages": [
2026-06-10T22:49:44.8072578Z         "doc",
2026-06-10T22:49:44.8072670Z         "impl",
2026-06-10T22:49:44.8072760Z         "unit",
2026-06-10T22:49:44.8072849Z         "int"
2026-06-10T22:49:44.8072942Z       ],
2026-06-10T22:49:44.8073032Z       "stages": {
2026-06-10T22:49:44.8073132Z         "doc": {
2026-06-10T22:49:44.8073227Z           "complete": true,
2026-06-10T22:49:44.8073318Z           "evidence": [
2026-06-10T22:49:44.8073408Z             {
2026-06-10T22:49:44.8073512Z               "path": "CONTEXT.md",
2026-06-10T22:49:44.8073609Z               "line": 346
2026-06-10T22:49:44.8073704Z             },
2026-06-10T22:49:44.8073790Z             {
2026-06-10T22:49:44.8073896Z               "path": "docs/MANIFEST.md",
2026-06-10T22:49:44.8073990Z               "line": 62
2026-06-10T22:49:44.8074085Z             }
2026-06-10T22:49:44.8074176Z           ]
2026-06-10T22:49:44.8074267Z         },
2026-06-10T22:49:44.8074357Z         "impl": {
2026-06-10T22:49:44.8074456Z           "complete": true,
2026-06-10T22:49:44.8074552Z           "evidence": [
2026-06-10T22:49:44.8074636Z             {
2026-06-10T22:49:44.8074763Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8074854Z               "line": 287
2026-06-10T22:49:44.8074945Z             },
2026-06-10T22:49:44.8075045Z             {
2026-06-10T22:49:44.8075159Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8075256Z               "line": 301
2026-06-10T22:49:44.8075346Z             },
2026-06-10T22:49:44.8075440Z             {
2026-06-10T22:49:44.8075551Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8075647Z               "line": 326
2026-06-10T22:49:44.8075736Z             },
2026-06-10T22:49:44.8075823Z             {
2026-06-10T22:49:44.8075950Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.8076147Z               "line": 126
2026-06-10T22:49:44.8076247Z             },
2026-06-10T22:49:44.8076332Z             {
2026-06-10T22:49:44.8076458Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.8076552Z               "line": 72
2026-06-10T22:49:44.8076637Z             },
2026-06-10T22:49:44.8076729Z             {
2026-06-10T22:49:44.8076839Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8077013Z               "line": 1546
2026-06-10T22:49:44.8077104Z             },
2026-06-10T22:49:44.8077189Z             {
2026-06-10T22:49:44.8077297Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8077392Z               "line": 1595
2026-06-10T22:49:44.8077488Z             },
2026-06-10T22:49:44.8077574Z             {
2026-06-10T22:49:44.8077687Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8077784Z               "line": 1674
2026-06-10T22:49:44.8077870Z             },
2026-06-10T22:49:44.8077969Z             {
2026-06-10T22:49:44.8078075Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8078170Z               "line": 1713
2026-06-10T22:49:44.8078255Z             }
2026-06-10T22:49:44.8078346Z           ]
2026-06-10T22:49:44.8078433Z         },
2026-06-10T22:49:44.8078527Z         "int": {
2026-06-10T22:49:44.8078627Z           "complete": true,
2026-06-10T22:49:44.8078719Z           "evidence": [
2026-06-10T22:49:44.8078822Z             {
2026-06-10T22:49:44.8079038Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8079137Z               "line": 740
2026-06-10T22:49:44.8079228Z             },
2026-06-10T22:49:44.8079315Z             {
2026-06-10T22:49:44.8079443Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8079533Z               "line": 1160
2026-06-10T22:49:44.8079630Z             }
2026-06-10T22:49:44.8079716Z           ]
2026-06-10T22:49:44.8079804Z         },
2026-06-10T22:49:44.8079904Z         "unit": {
2026-06-10T22:49:44.8080009Z           "complete": true,
2026-06-10T22:49:44.8080105Z           "evidence": [
2026-06-10T22:49:44.8080190Z             {
2026-06-10T22:49:44.8080310Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8080405Z               "line": 990
2026-06-10T22:49:44.8080500Z             },
2026-06-10T22:49:44.8080591Z             {
2026-06-10T22:49:44.8080705Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8080805Z               "line": 1058
2026-06-10T22:49:44.8080896Z             },
2026-06-10T22:49:44.8080983Z             {
2026-06-10T22:49:44.8081087Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8081182Z               "line": 5564
2026-06-10T22:49:44.8081274Z             },
2026-06-10T22:49:44.8081363Z             {
2026-06-10T22:49:44.8081468Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8081564Z               "line": 5619
2026-06-10T22:49:44.8081654Z             }
2026-06-10T22:49:44.8081744Z           ]
2026-06-10T22:49:44.8081840Z         }
2026-06-10T22:49:44.8081928Z       }
2026-06-10T22:49:44.8082011Z     },
2026-06-10T22:49:44.8082101Z     {
2026-06-10T22:49:44.8082196Z       "id": "REQ-PAIR-1",
2026-06-10T22:49:44.8082310Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-10T22:49:44.8082409Z       "requiredStages": [
2026-06-10T22:49:44.8082509Z         "impl",
2026-06-10T22:49:44.8082600Z         "unit",
2026-06-10T22:49:44.8082690Z         "int"
2026-06-10T22:49:44.8082780Z       ],
2026-06-10T22:49:44.8082872Z       "stages": {
2026-06-10T22:49:44.8082967Z         "doc": {
2026-06-10T22:49:44.8083067Z           "complete": false,
2026-06-10T22:49:44.8083162Z           "evidence": []
2026-06-10T22:49:44.8083254Z         },
2026-06-10T22:49:44.8083343Z         "impl": {
2026-06-10T22:49:44.8083438Z           "complete": true,
2026-06-10T22:49:44.8083530Z           "evidence": [
2026-06-10T22:49:44.8083625Z             {
2026-06-10T22:49:44.8083758Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.8084001Z               "line": 27
2026-06-10T22:49:44.8084092Z             },
2026-06-10T22:49:44.8084174Z             {
2026-06-10T22:49:44.8084306Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.8084402Z               "line": 88
2026-06-10T22:49:44.8084494Z             },
2026-06-10T22:49:44.8084583Z             {
2026-06-10T22:49:44.8084712Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.8084907Z               "line": 110
2026-06-10T22:49:44.8084992Z             },
2026-06-10T22:49:44.8085083Z             {
2026-06-10T22:49:44.8085210Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.8085304Z               "line": 153
2026-06-10T22:49:44.8085395Z             },
2026-06-10T22:49:44.8085492Z             {
2026-06-10T22:49:44.8085619Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.8085714Z               "line": 182
2026-06-10T22:49:44.8085811Z             },
2026-06-10T22:49:44.8085896Z             {
2026-06-10T22:49:44.8086029Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T22:49:44.8086121Z               "line": 29
2026-06-10T22:49:44.8086216Z             },
2026-06-10T22:49:44.8086310Z             {
2026-06-10T22:49:44.8086455Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T22:49:44.8086564Z               "line": 31
2026-06-10T22:49:44.8086649Z             },
2026-06-10T22:49:44.8086741Z             {
2026-06-10T22:49:44.8086863Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8086964Z               "line": 44
2026-06-10T22:49:44.8087051Z             },
2026-06-10T22:49:44.8087141Z             {
2026-06-10T22:49:44.8087264Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8087356Z               "line": 171
2026-06-10T22:49:44.8087451Z             },
2026-06-10T22:49:44.8087545Z             {
2026-06-10T22:49:44.8087678Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8087777Z               "line": 376
2026-06-10T22:49:44.8087862Z             }
2026-06-10T22:49:44.8087952Z           ]
2026-06-10T22:49:44.8090337Z         },
2026-06-10T22:49:44.8090464Z         "int": {
2026-06-10T22:49:44.8090574Z           "complete": true,
2026-06-10T22:49:44.8090675Z           "evidence": [
2026-06-10T22:49:44.8090788Z             {
2026-06-10T22:49:44.8090932Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8091032Z               "line": 575
2026-06-10T22:49:44.8091117Z             },
2026-06-10T22:49:44.8091204Z             {
2026-06-10T22:49:44.8091337Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8091471Z               "line": 792
2026-06-10T22:49:44.8091562Z             }
2026-06-10T22:49:44.8091642Z           ]
2026-06-10T22:49:44.8091727Z         },
2026-06-10T22:49:44.8091814Z         "unit": {
2026-06-10T22:49:44.8091919Z           "complete": true,
2026-06-10T22:49:44.8092014Z           "evidence": [
2026-06-10T22:49:44.8092095Z             {
2026-06-10T22:49:44.8092234Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.8092328Z               "line": 236
2026-06-10T22:49:44.8092419Z             },
2026-06-10T22:49:44.8092497Z             {
2026-06-10T22:49:44.8092638Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T22:49:44.8092742Z               "line": 349
2026-06-10T22:49:44.8092819Z             },
2026-06-10T22:49:44.8092912Z             {
2026-06-10T22:49:44.8093045Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T22:49:44.8093141Z               "line": 194
2026-06-10T22:49:44.8093218Z             },
2026-06-10T22:49:44.8093303Z             {
2026-06-10T22:49:44.8093437Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T22:49:44.8093527Z               "line": 216
2026-06-10T22:49:44.8093752Z             },
2026-06-10T22:49:44.8093832Z             {
2026-06-10T22:49:44.8093956Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T22:49:44.8094052Z               "line": 230
2026-06-10T22:49:44.8094133Z             },
2026-06-10T22:49:44.8094214Z             {
2026-06-10T22:49:44.8094333Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T22:49:44.8094434Z               "line": 242
2026-06-10T22:49:44.8094619Z             },
2026-06-10T22:49:44.8094706Z             {
2026-06-10T22:49:44.8094876Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T22:49:44.8094972Z               "line": 256
2026-06-10T22:49:44.8095063Z             },
2026-06-10T22:49:44.8095157Z             {
2026-06-10T22:49:44.8095282Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T22:49:44.8095383Z               "line": 270
2026-06-10T22:49:44.8095472Z             },
2026-06-10T22:49:44.8095552Z             {
2026-06-10T22:49:44.8095686Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T22:49:44.8095780Z               "line": 277
2026-06-10T22:49:44.8095860Z             },
2026-06-10T22:49:44.8095950Z             {
2026-06-10T22:49:44.8096071Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T22:49:44.8096165Z               "line": 295
2026-06-10T22:49:44.8096251Z             },
2026-06-10T22:49:44.8096337Z             {
2026-06-10T22:49:44.8096461Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8096555Z               "line": 968
2026-06-10T22:49:44.8096648Z             },
2026-06-10T22:49:44.8096728Z             {
2026-06-10T22:49:44.8096847Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8096948Z               "line": 1051
2026-06-10T22:49:44.8097033Z             },
2026-06-10T22:49:44.8097133Z             {
2026-06-10T22:49:44.8097258Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8097353Z               "line": 1121
2026-06-10T22:49:44.8097443Z             },
2026-06-10T22:49:44.8097529Z             {
2026-06-10T22:49:44.8097691Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8097777Z               "line": 1182
2026-06-10T22:49:44.8097859Z             },
2026-06-10T22:49:44.8097945Z             {
2026-06-10T22:49:44.8098063Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8098157Z               "line": 1238
2026-06-10T22:49:44.8098257Z             },
2026-06-10T22:49:44.8098347Z             {
2026-06-10T22:49:44.8098469Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8098565Z               "line": 1457
2026-06-10T22:49:44.8098642Z             }
2026-06-10T22:49:44.8098741Z           ]
2026-06-10T22:49:44.8098818Z         }
2026-06-10T22:49:44.8098914Z       }
2026-06-10T22:49:44.8099098Z     },
2026-06-10T22:49:44.8099181Z     {
2026-06-10T22:49:44.8099285Z       "id": "REQ-PAIR-2",
2026-06-10T22:49:44.8099427Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-10T22:49:44.8099529Z       "requiredStages": [],
2026-06-10T22:49:44.8099619Z       "stages": {
2026-06-10T22:49:44.8099705Z         "doc": {
2026-06-10T22:49:44.8099805Z           "complete": false,
2026-06-10T22:49:44.8099905Z           "evidence": []
2026-06-10T22:49:44.8099991Z         },
2026-06-10T22:49:44.8100077Z         "impl": {
2026-06-10T22:49:44.8100182Z           "complete": false,
2026-06-10T22:49:44.8100277Z           "evidence": []
2026-06-10T22:49:44.8100367Z         },
2026-06-10T22:49:44.8100460Z         "int": {
2026-06-10T22:49:44.8100554Z           "complete": false,
2026-06-10T22:49:44.8100654Z           "evidence": []
2026-06-10T22:49:44.8100731Z         },
2026-06-10T22:49:44.8100826Z         "unit": {
2026-06-10T22:49:44.8100911Z           "complete": false,
2026-06-10T22:49:44.8101005Z           "evidence": []
2026-06-10T22:49:44.8101086Z         }
2026-06-10T22:49:44.8101272Z       }
2026-06-10T22:49:44.8101358Z     },
2026-06-10T22:49:44.8101525Z     {
2026-06-10T22:49:44.8101625Z       "id": "REQ-PAIR-3",
2026-06-10T22:49:44.8101779Z       "title": "Fetch current pairing code from any paired node",
2026-06-10T22:49:44.8101869Z       "requiredStages": [
2026-06-10T22:49:44.8101963Z         "impl",
2026-06-10T22:49:44.8102055Z         "unit"
2026-06-10T22:49:44.8102150Z       ],
2026-06-10T22:49:44.8102355Z       "stages": {
2026-06-10T22:49:44.8102451Z         "doc": {
2026-06-10T22:49:44.8102541Z           "complete": false,
2026-06-10T22:49:44.8102636Z           "evidence": []
2026-06-10T22:49:44.8102728Z         },
2026-06-10T22:49:44.8102822Z         "impl": {
2026-06-10T22:49:44.8102917Z           "complete": true,
2026-06-10T22:49:44.8103009Z           "evidence": [
2026-06-10T22:49:44.8103100Z             {
2026-06-10T22:49:44.8103207Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8103302Z               "line": 2333
2026-06-10T22:49:44.8103393Z             },
2026-06-10T22:49:44.8103477Z             {
2026-06-10T22:49:44.8103586Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8103672Z               "line": 2402
2026-06-10T22:49:44.8103764Z             },
2026-06-10T22:49:44.8103853Z             {
2026-06-10T22:49:44.8103958Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8104054Z               "line": 2638
2026-06-10T22:49:44.8104144Z             }
2026-06-10T22:49:44.8104230Z           ]
2026-06-10T22:49:44.8104317Z         },
2026-06-10T22:49:44.8104407Z         "int": {
2026-06-10T22:49:44.8104501Z           "complete": false,
2026-06-10T22:49:44.8104598Z           "evidence": []
2026-06-10T22:49:44.8104688Z         },
2026-06-10T22:49:44.8104779Z         "unit": {
2026-06-10T22:49:44.8104869Z           "complete": true,
2026-06-10T22:49:44.8104965Z           "evidence": [
2026-06-10T22:49:44.8105055Z             {
2026-06-10T22:49:44.8105160Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8105256Z               "line": 6932
2026-06-10T22:49:44.8105351Z             },
2026-06-10T22:49:44.8105436Z             {
2026-06-10T22:49:44.8105552Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8105643Z               "line": 7147
2026-06-10T22:49:44.8105741Z             },
2026-06-10T22:49:44.8105832Z             {
2026-06-10T22:49:44.8105948Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8106037Z               "line": 7728
2026-06-10T22:49:44.8106127Z             },
2026-06-10T22:49:44.8106212Z             {
2026-06-10T22:49:44.8106316Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8106416Z               "line": 7747
2026-06-10T22:49:44.8106501Z             },
2026-06-10T22:49:44.8106592Z             {
2026-06-10T22:49:44.8106692Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8106791Z               "line": 7771
2026-06-10T22:49:44.8106879Z             },
2026-06-10T22:49:44.8106964Z             {
2026-06-10T22:49:44.8107078Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8107174Z               "line": 7790
2026-06-10T22:49:44.8107264Z             },
2026-06-10T22:49:44.8107345Z             {
2026-06-10T22:49:44.8107440Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8107537Z               "line": 7803
2026-06-10T22:49:44.8107622Z             },
2026-06-10T22:49:44.8107712Z             {
2026-06-10T22:49:44.8107813Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8107908Z               "line": 7812
2026-06-10T22:49:44.8108003Z             }
2026-06-10T22:49:44.8108089Z           ]
2026-06-10T22:49:44.8108176Z         }
2026-06-10T22:49:44.8108261Z       }
2026-06-10T22:49:44.8108352Z     },
2026-06-10T22:49:44.8108429Z     {
2026-06-10T22:49:44.8108528Z       "id": "REQ-PAIR-4",
2026-06-10T22:49:44.8108642Z       "title": "Subnet naming on first pairing",
2026-06-10T22:49:44.8108736Z       "requiredStages": [
2026-06-10T22:49:44.8108822Z         "impl",
2026-06-10T22:49:44.8109087Z         "unit"
2026-06-10T22:49:44.8109179Z       ],
2026-06-10T22:49:44.8109264Z       "stages": {
2026-06-10T22:49:44.8109353Z         "doc": {
2026-06-10T22:49:44.8109450Z           "complete": false,
2026-06-10T22:49:44.8109540Z           "evidence": []
2026-06-10T22:49:44.8109621Z         },
2026-06-10T22:49:44.8109702Z         "impl": {
2026-06-10T22:49:44.8109789Z           "complete": true,
2026-06-10T22:49:44.8109969Z           "evidence": [
2026-06-10T22:49:44.8110061Z             {
2026-06-10T22:49:44.8110184Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T22:49:44.8110269Z               "line": 174
2026-06-10T22:49:44.8110355Z             }
2026-06-10T22:49:44.8110447Z           ]
2026-06-10T22:49:44.8110532Z         },
2026-06-10T22:49:44.8110617Z         "int": {
2026-06-10T22:49:44.8110719Z           "complete": false,
2026-06-10T22:49:44.8110813Z           "evidence": []
2026-06-10T22:49:44.8110899Z         },
2026-06-10T22:49:44.8110990Z         "unit": {
2026-06-10T22:49:44.8111081Z           "complete": true,
2026-06-10T22:49:44.8111175Z           "evidence": [
2026-06-10T22:49:44.8111266Z             {
2026-06-10T22:49:44.8111396Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8111490Z               "line": 1294
2026-06-10T22:49:44.8111579Z             }
2026-06-10T22:49:44.8111671Z           ]
2026-06-10T22:49:44.8111757Z         }
2026-06-10T22:49:44.8111851Z       }
2026-06-10T22:49:44.8111923Z     },
2026-06-10T22:49:44.8112014Z     {
2026-06-10T22:49:44.8112105Z       "id": "REQ-PAIR-5",
2026-06-10T22:49:44.8112400Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-10T22:49:44.8112505Z       "requiredStages": [
2026-06-10T22:49:44.8112586Z         "impl",
2026-06-10T22:49:44.8112668Z         "unit",
2026-06-10T22:49:44.8112743Z         "int"
2026-06-10T22:49:44.8112833Z       ],
2026-06-10T22:49:44.8112930Z       "stages": {
2026-06-10T22:49:44.8113026Z         "doc": {
2026-06-10T22:49:44.8113121Z           "complete": false,
2026-06-10T22:49:44.8113220Z           "evidence": []
2026-06-10T22:49:44.8113307Z         },
2026-06-10T22:49:44.8113392Z         "impl": {
2026-06-10T22:49:44.8113487Z           "complete": true,
2026-06-10T22:49:44.8113579Z           "evidence": [
2026-06-10T22:49:44.8113669Z             {
2026-06-10T22:49:44.8113791Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T22:49:44.8113901Z               "line": 44
2026-06-10T22:49:44.8113991Z             },
2026-06-10T22:49:44.8114080Z             {
2026-06-10T22:49:44.8114209Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T22:49:44.8114304Z               "line": 96
2026-06-10T22:49:44.8114394Z             },
2026-06-10T22:49:44.8114475Z             {
2026-06-10T22:49:44.8114591Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T22:49:44.8114686Z               "line": 107
2026-06-10T22:49:44.8114780Z             },
2026-06-10T22:49:44.8114872Z             {
2026-06-10T22:49:44.8115001Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T22:49:44.8115095Z               "line": 124
2026-06-10T22:49:44.8115187Z             },
2026-06-10T22:49:44.8115267Z             {
2026-06-10T22:49:44.8115400Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T22:49:44.8115487Z               "line": 155
2026-06-10T22:49:44.8115582Z             },
2026-06-10T22:49:44.8115673Z             {
2026-06-10T22:49:44.8115792Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T22:49:44.8115883Z               "line": 195
2026-06-10T22:49:44.8115958Z             },
2026-06-10T22:49:44.8116054Z             {
2026-06-10T22:49:44.8116179Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T22:49:44.8116268Z               "line": 251
2026-06-10T22:49:44.8116364Z             },
2026-06-10T22:49:44.8116441Z             {
2026-06-10T22:49:44.8116720Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T22:49:44.8116816Z               "line": 33
2026-06-10T22:49:44.8116909Z             },
2026-06-10T22:49:44.8116994Z             {
2026-06-10T22:49:44.8117133Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T22:49:44.8117229Z               "line": 45
2026-06-10T22:49:44.8117319Z             },
2026-06-10T22:49:44.8117472Z             {
2026-06-10T22:49:44.8117604Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T22:49:44.8117700Z               "line": 59
2026-06-10T22:49:44.8117796Z             },
2026-06-10T22:49:44.8117882Z             {
2026-06-10T22:49:44.8118010Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8118107Z               "line": 376
2026-06-10T22:49:44.8118187Z             }
2026-06-10T22:49:44.8118272Z           ]
2026-06-10T22:49:44.8118364Z         },
2026-06-10T22:49:44.8118454Z         "int": {
2026-06-10T22:49:44.8118554Z           "complete": true,
2026-06-10T22:49:44.8118649Z           "evidence": [
2026-06-10T22:49:44.8118736Z             {
2026-06-10T22:49:44.8118863Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8119032Z               "line": 792
2026-06-10T22:49:44.8119122Z             },
2026-06-10T22:49:44.8119211Z             {
2026-06-10T22:49:44.8119334Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T22:49:44.8119429Z               "line": 342
2026-06-10T22:49:44.8119509Z             }
2026-06-10T22:49:44.8119599Z           ]
2026-06-10T22:49:44.8119686Z         },
2026-06-10T22:49:44.8119777Z         "unit": {
2026-06-10T22:49:44.8119876Z           "complete": true,
2026-06-10T22:49:44.8119971Z           "evidence": [
2026-06-10T22:49:44.8120048Z             {
2026-06-10T22:49:44.8120176Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T22:49:44.8120272Z               "line": 293
2026-06-10T22:49:44.8120363Z             },
2026-06-10T22:49:44.8120458Z             {
2026-06-10T22:49:44.8120582Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T22:49:44.8120663Z               "line": 304
2026-06-10T22:49:44.8120754Z             },
2026-06-10T22:49:44.8120829Z             {
2026-06-10T22:49:44.8120950Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T22:49:44.8121040Z               "line": 406
2026-06-10T22:49:44.8121135Z             },
2026-06-10T22:49:44.8121221Z             {
2026-06-10T22:49:44.8121350Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T22:49:44.8121440Z               "line": 72
2026-06-10T22:49:44.8121531Z             },
2026-06-10T22:49:44.8121618Z             {
2026-06-10T22:49:44.8121750Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T22:49:44.8121836Z               "line": 82
2026-06-10T22:49:44.8121928Z             },
2026-06-10T22:49:44.8122017Z             {
2026-06-10T22:49:44.8122154Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T22:49:44.8122250Z               "line": 100
2026-06-10T22:49:44.8122341Z             },
2026-06-10T22:49:44.8122430Z             {
2026-06-10T22:49:44.8122560Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T22:49:44.8122651Z               "line": 110
2026-06-10T22:49:44.8122741Z             },
2026-06-10T22:49:44.8122836Z             {
2026-06-10T22:49:44.8122975Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T22:49:44.8123070Z               "line": 125
2026-06-10T22:49:44.8123155Z             },
2026-06-10T22:49:44.8123242Z             {
2026-06-10T22:49:44.8123370Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8123466Z               "line": 1044
2026-06-10T22:49:44.8123562Z             },
2026-06-10T22:49:44.8123642Z             {
2026-06-10T22:49:44.8123771Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8123961Z               "line": 1110
2026-06-10T22:49:44.8124052Z             },
2026-06-10T22:49:44.8124139Z             {
2026-06-10T22:49:44.8124262Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8124356Z               "line": 1357
2026-06-10T22:49:44.8124447Z             }
2026-06-10T22:49:44.8124537Z           ]
2026-06-10T22:49:44.8124626Z         }
2026-06-10T22:49:44.8124816Z       }
2026-06-10T22:49:44.8124899Z     },
2026-06-10T22:49:44.8124987Z     {
2026-06-10T22:49:44.8125088Z       "id": "REQ-PAIR-6",
2026-06-10T22:49:44.8125340Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-10T22:49:44.8125442Z       "requiredStages": [
2026-06-10T22:49:44.8125527Z         "impl",
2026-06-10T22:49:44.8125608Z         "unit"
2026-06-10T22:49:44.8125694Z       ],
2026-06-10T22:49:44.8125780Z       "stages": {
2026-06-10T22:49:44.8125875Z         "doc": {
2026-06-10T22:49:44.8125979Z           "complete": false,
2026-06-10T22:49:44.8126071Z           "evidence": []
2026-06-10T22:49:44.8126157Z         },
2026-06-10T22:49:44.8126252Z         "impl": {
2026-06-10T22:49:44.8126347Z           "complete": true,
2026-06-10T22:49:44.8126439Z           "evidence": [
2026-06-10T22:49:44.8126532Z             {
2026-06-10T22:49:44.8126633Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8126735Z               "line": 2402
2026-06-10T22:49:44.8126824Z             },
2026-06-10T22:49:44.8126919Z             {
2026-06-10T22:49:44.8127040Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8127139Z               "line": 2638
2026-06-10T22:49:44.8127238Z             },
2026-06-10T22:49:44.8127324Z             {
2026-06-10T22:49:44.8127442Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T22:49:44.8127540Z               "line": 18
2026-06-10T22:49:44.8127626Z             },
2026-06-10T22:49:44.8127718Z             {
2026-06-10T22:49:44.8127836Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T22:49:44.8127931Z               "line": 49
2026-06-10T22:49:44.8128023Z             },
2026-06-10T22:49:44.8128109Z             {
2026-06-10T22:49:44.8128222Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T22:49:44.8128314Z               "line": 163
2026-06-10T22:49:44.8128404Z             }
2026-06-10T22:49:44.8128494Z           ]
2026-06-10T22:49:44.8128594Z         },
2026-06-10T22:49:44.8128686Z         "int": {
2026-06-10T22:49:44.8128781Z           "complete": false,
2026-06-10T22:49:44.8128880Z           "evidence": []
2026-06-10T22:49:44.8129047Z         },
2026-06-10T22:49:44.8129142Z         "unit": {
2026-06-10T22:49:44.8129239Z           "complete": true,
2026-06-10T22:49:44.8129334Z           "evidence": [
2026-06-10T22:49:44.8129428Z             {
2026-06-10T22:49:44.8129534Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8129631Z               "line": 7825
2026-06-10T22:49:44.8129724Z             },
2026-06-10T22:49:44.8129814Z             {
2026-06-10T22:49:44.8129919Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8130017Z               "line": 7842
2026-06-10T22:49:44.8130107Z             },
2026-06-10T22:49:44.8130193Z             {
2026-06-10T22:49:44.8130308Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T22:49:44.8130403Z               "line": 228
2026-06-10T22:49:44.8130498Z             },
2026-06-10T22:49:44.8130585Z             {
2026-06-10T22:49:44.8130699Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T22:49:44.8130798Z               "line": 237
2026-06-10T22:49:44.8130886Z             }
2026-06-10T22:49:44.8130980Z           ]
2026-06-10T22:49:44.8131065Z         }
2026-06-10T22:49:44.8131152Z       }
2026-06-10T22:49:44.8131242Z     },
2026-06-10T22:49:44.8131328Z     {
2026-06-10T22:49:44.8131432Z       "id": "REQ-PAIR-7",
2026-06-10T22:49:44.8131590Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-10T22:49:44.8131810Z       "requiredStages": [],
2026-06-10T22:49:44.8131900Z       "stages": {
2026-06-10T22:49:44.8131991Z         "doc": {
2026-06-10T22:49:44.8132086Z           "complete": false,
2026-06-10T22:49:44.8132187Z           "evidence": []
2026-06-10T22:49:44.8132276Z         },
2026-06-10T22:49:44.8132368Z         "impl": {
2026-06-10T22:49:44.8132464Z           "complete": false,
2026-06-10T22:49:44.8132558Z           "evidence": []
2026-06-10T22:49:44.8132748Z         },
2026-06-10T22:49:44.8132834Z         "int": {
2026-06-10T22:49:44.8132943Z           "complete": false,
2026-06-10T22:49:44.8133038Z           "evidence": []
2026-06-10T22:49:44.8133125Z         },
2026-06-10T22:49:44.8133225Z         "unit": {
2026-06-10T22:49:44.8133320Z           "complete": false,
2026-06-10T22:49:44.8133416Z           "evidence": []
2026-06-10T22:49:44.8133506Z         }
2026-06-10T22:49:44.8133592Z       }
2026-06-10T22:49:44.8133682Z     },
2026-06-10T22:49:44.8133774Z     {
2026-06-10T22:49:44.8133878Z       "id": "REQ-PAIR-8",
2026-06-10T22:49:44.8135219Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-10T22:49:44.8135339Z       "requiredStages": [
2026-06-10T22:49:44.8135434Z         "impl",
2026-06-10T22:49:44.8135525Z         "unit"
2026-06-10T22:49:44.8135615Z       ],
2026-06-10T22:49:44.8135706Z       "stages": {
2026-06-10T22:49:44.8135801Z         "doc": {
2026-06-10T22:49:44.8135900Z           "complete": false,
2026-06-10T22:49:44.8135997Z           "evidence": []
2026-06-10T22:49:44.8136092Z         },
2026-06-10T22:49:44.8136182Z         "impl": {
2026-06-10T22:49:44.8136283Z           "complete": true,
2026-06-10T22:49:44.8136383Z           "evidence": [
2026-06-10T22:49:44.8136473Z             {
2026-06-10T22:49:44.8136607Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.8136703Z               "line": 577
2026-06-10T22:49:44.8136798Z             },
2026-06-10T22:49:44.8136883Z             {
2026-06-10T22:49:44.8137018Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T22:49:44.8137122Z               "line": 22
2026-06-10T22:49:44.8137213Z             },
2026-06-10T22:49:44.8137295Z             {
2026-06-10T22:49:44.8137421Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T22:49:44.8137518Z               "line": 76
2026-06-10T22:49:44.8137595Z             },
2026-06-10T22:49:44.8137685Z             {
2026-06-10T22:49:44.8137803Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T22:49:44.8137903Z               "line": 127
2026-06-10T22:49:44.8137997Z             }
2026-06-10T22:49:44.8138096Z           ]
2026-06-10T22:49:44.8138191Z         },
2026-06-10T22:49:44.8138278Z         "int": {
2026-06-10T22:49:44.8138378Z           "complete": false,
2026-06-10T22:49:44.8138472Z           "evidence": []
2026-06-10T22:49:44.8138564Z         },
2026-06-10T22:49:44.8138649Z         "unit": {
2026-06-10T22:49:44.8138744Z           "complete": true,
2026-06-10T22:49:44.8138840Z           "evidence": [
2026-06-10T22:49:44.8138922Z             {
2026-06-10T22:49:44.8139126Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T22:49:44.8139217Z               "line": 183
2026-06-10T22:49:44.8139311Z             },
2026-06-10T22:49:44.8139392Z             {
2026-06-10T22:49:44.8139518Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T22:49:44.8139617Z               "line": 195
2026-06-10T22:49:44.8139707Z             },
2026-06-10T22:49:44.8139799Z             {
2026-06-10T22:49:44.8139909Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T22:49:44.8140104Z               "line": 211
2026-06-10T22:49:44.8140195Z             },
2026-06-10T22:49:44.8140293Z             {
2026-06-10T22:49:44.8140421Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T22:49:44.8140508Z               "line": 227
2026-06-10T22:49:44.8140592Z             }
2026-06-10T22:49:44.8140681Z           ]
2026-06-10T22:49:44.8140772Z         }
2026-06-10T22:49:44.8140859Z       }
2026-06-10T22:49:44.8141068Z     },
2026-06-10T22:49:44.8141188Z     {
2026-06-10T22:49:44.8141306Z       "id": "REQ-PRES-1",
2026-06-10T22:49:44.8142637Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-10T22:49:44.8142748Z       "requiredStages": [
2026-06-10T22:49:44.8142841Z         "impl",
2026-06-10T22:49:44.8142932Z         "unit",
2026-06-10T22:49:44.8143019Z         "int"
2026-06-10T22:49:44.8143109Z       ],
2026-06-10T22:49:44.8143198Z       "stages": {
2026-06-10T22:49:44.8143288Z         "doc": {
2026-06-10T22:49:44.8143385Z           "complete": true,
2026-06-10T22:49:44.8143480Z           "evidence": [
2026-06-10T22:49:44.8143579Z             {
2026-06-10T22:49:44.8143685Z               "path": "docs/DEFERRED.md",
2026-06-10T22:49:44.8143785Z               "line": 11
2026-06-10T22:49:44.8143875Z             }
2026-06-10T22:49:44.8143961Z           ]
2026-06-10T22:49:44.8144048Z         },
2026-06-10T22:49:44.8144143Z         "impl": {
2026-06-10T22:49:44.8144242Z           "complete": true,
2026-06-10T22:49:44.8144334Z           "evidence": [
2026-06-10T22:49:44.8144424Z             {
2026-06-10T22:49:44.8144552Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.8144659Z               "line": 515
2026-06-10T22:49:44.8144748Z             },
2026-06-10T22:49:44.8144839Z             {
2026-06-10T22:49:44.8144964Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.8145058Z               "line": 567
2026-06-10T22:49:44.8145148Z             },
2026-06-10T22:49:44.8145235Z             {
2026-06-10T22:49:44.8145364Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8145467Z               "line": 188
2026-06-10T22:49:44.8145552Z             },
2026-06-10T22:49:44.8145643Z             {
2026-06-10T22:49:44.8145756Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8145855Z               "line": 214
2026-06-10T22:49:44.8145942Z             },
2026-06-10T22:49:44.8146033Z             {
2026-06-10T22:49:44.8146151Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T22:49:44.8146247Z               "line": 28
2026-06-10T22:49:44.8146338Z             },
2026-06-10T22:49:44.8146428Z             {
2026-06-10T22:49:44.8146548Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T22:49:44.8146643Z               "line": 105
2026-06-10T22:49:44.8146733Z             },
2026-06-10T22:49:44.8146824Z             {
2026-06-10T22:49:44.8146943Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T22:49:44.8147043Z               "line": 161
2026-06-10T22:49:44.8147129Z             },
2026-06-10T22:49:44.8147229Z             {
2026-06-10T22:49:44.8147344Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T22:49:44.8147438Z               "line": 180
2026-06-10T22:49:44.8147530Z             },
2026-06-10T22:49:44.8147620Z             {
2026-06-10T22:49:44.8147748Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8147845Z               "line": 399
2026-06-10T22:49:44.8147939Z             },
2026-06-10T22:49:44.8148030Z             {
2026-06-10T22:49:44.8148156Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8148329Z               "line": 289
2026-06-10T22:49:44.8148420Z             },
2026-06-10T22:49:44.8148510Z             {
2026-06-10T22:49:44.8148633Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8148727Z               "line": 336
2026-06-10T22:49:44.8148813Z             },
2026-06-10T22:49:44.8148905Z             {
2026-06-10T22:49:44.8149158Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8149381Z               "line": 362
2026-06-10T22:49:44.8149472Z             },
2026-06-10T22:49:44.8149568Z             {
2026-06-10T22:49:44.8149686Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8149782Z               "line": 100
2026-06-10T22:49:44.8149876Z             }
2026-06-10T22:49:44.8149972Z           ]
2026-06-10T22:49:44.8150059Z         },
2026-06-10T22:49:44.8150149Z         "int": {
2026-06-10T22:49:44.8150244Z           "complete": true,
2026-06-10T22:49:44.8150349Z           "evidence": [
2026-06-10T22:49:44.8150436Z             {
2026-06-10T22:49:44.8150568Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.8150664Z               "line": 557
2026-06-10T22:49:44.8150755Z             },
2026-06-10T22:49:44.8150849Z             {
2026-06-10T22:49:44.8150972Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8151072Z               "line": 677
2026-06-10T22:49:44.8151175Z             },
2026-06-10T22:49:44.8151265Z             {
2026-06-10T22:49:44.8151385Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8151477Z               "line": 1070
2026-06-10T22:49:44.8151561Z             }
2026-06-10T22:49:44.8151652Z           ]
2026-06-10T22:49:44.8151738Z         },
2026-06-10T22:49:44.8151833Z         "unit": {
2026-06-10T22:49:44.8151928Z           "complete": true,
2026-06-10T22:49:44.8152020Z           "evidence": [
2026-06-10T22:49:44.8152110Z             {
2026-06-10T22:49:44.8152238Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8152335Z               "line": 648
2026-06-10T22:49:44.8152419Z             },
2026-06-10T22:49:44.8152505Z             {
2026-06-10T22:49:44.8152625Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T22:49:44.8152720Z               "line": 237
2026-06-10T22:49:44.8152806Z             },
2026-06-10T22:49:44.8152901Z             {
2026-06-10T22:49:44.8153012Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T22:49:44.8153111Z               "line": 268
2026-06-10T22:49:44.8153202Z             },
2026-06-10T22:49:44.8153289Z             {
2026-06-10T22:49:44.8153406Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T22:49:44.8153497Z               "line": 304
2026-06-10T22:49:44.8153584Z             },
2026-06-10T22:49:44.8153660Z             {
2026-06-10T22:49:44.8153792Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T22:49:44.8153892Z               "line": 335
2026-06-10T22:49:44.8153983Z             },
2026-06-10T22:49:44.8154078Z             {
2026-06-10T22:49:44.8154207Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8154303Z               "line": 1135
2026-06-10T22:49:44.8154392Z             },
2026-06-10T22:49:44.8154487Z             {
2026-06-10T22:49:44.8154603Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8154707Z               "line": 1112
2026-06-10T22:49:44.8154798Z             }
2026-06-10T22:49:44.8154880Z           ]
2026-06-10T22:49:44.8154975Z         }
2026-06-10T22:49:44.8155064Z       }
2026-06-10T22:49:44.8155156Z     },
2026-06-10T22:49:44.8155247Z     {
2026-06-10T22:49:44.8155342Z       "id": "REQ-REACH-1",
2026-06-10T22:49:44.8155495Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-10T22:49:44.8155595Z       "requiredStages": [
2026-06-10T22:49:44.8155689Z         "impl",
2026-06-10T22:49:44.8155775Z         "unit",
2026-06-10T22:49:44.8155970Z         "int"
2026-06-10T22:49:44.8156065Z       ],
2026-06-10T22:49:44.8156156Z       "stages": {
2026-06-10T22:49:44.8156250Z         "doc": {
2026-06-10T22:49:44.8156349Z           "complete": false,
2026-06-10T22:49:44.8156449Z           "evidence": []
2026-06-10T22:49:44.8156541Z         },
2026-06-10T22:49:44.8156635Z         "impl": {
2026-06-10T22:49:44.8156735Z           "complete": true,
2026-06-10T22:49:44.8156826Z           "evidence": [
2026-06-10T22:49:44.8156993Z             {
2026-06-10T22:49:44.8157118Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-10T22:49:44.8157213Z               "line": 140
2026-06-10T22:49:44.8157302Z             },
2026-06-10T22:49:44.8157394Z             {
2026-06-10T22:49:44.8157522Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T22:49:44.8157613Z               "line": 76
2026-06-10T22:49:44.8157703Z             },
2026-06-10T22:49:44.8157794Z             {
2026-06-10T22:49:44.8157908Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T22:49:44.8158013Z               "line": 222
2026-06-10T22:49:44.8158105Z             },
2026-06-10T22:49:44.8158194Z             {
2026-06-10T22:49:44.8158313Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T22:49:44.8158410Z               "line": 422
2026-06-10T22:49:44.8158499Z             },
2026-06-10T22:49:44.8160919Z             {
2026-06-10T22:49:44.8161080Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T22:49:44.8161195Z               "line": 529
2026-06-10T22:49:44.8161291Z             },
2026-06-10T22:49:44.8161381Z             {
2026-06-10T22:49:44.8161508Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-10T22:49:44.8161609Z               "line": 39
2026-06-10T22:49:44.8161698Z             },
2026-06-10T22:49:44.8161787Z             {
2026-06-10T22:49:44.8161912Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.8162008Z               "line": 229
2026-06-10T22:49:44.8162097Z             },
2026-06-10T22:49:44.8162193Z             {
2026-06-10T22:49:44.8162303Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-10T22:49:44.8162398Z               "line": 88
2026-06-10T22:49:44.8162493Z             },
2026-06-10T22:49:44.8162580Z             {
2026-06-10T22:49:44.8162689Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-10T22:49:44.8162788Z               "line": 98
2026-06-10T22:49:44.8162880Z             },
2026-06-10T22:49:44.8162980Z             {
2026-06-10T22:49:44.8163103Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.8163200Z               "line": 210
2026-06-10T22:49:44.8163285Z             }
2026-06-10T22:49:44.8163380Z           ]
2026-06-10T22:49:44.8163466Z         },
2026-06-10T22:49:44.8163563Z         "int": {
2026-06-10T22:49:44.8163661Z           "complete": true,
2026-06-10T22:49:44.8163757Z           "evidence": [
2026-06-10T22:49:44.8163844Z             {
2026-06-10T22:49:44.8163980Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.8164087Z               "line": 415
2026-06-10T22:49:44.8164178Z             },
2026-06-10T22:49:44.8164272Z             {
2026-06-10T22:49:44.8164404Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.8164500Z               "line": 514
2026-06-10T22:49:44.8164578Z             },
2026-06-10T22:49:44.8164657Z             {
2026-06-10T22:49:44.8164786Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8164886Z               "line": 903
2026-06-10T22:49:44.8164976Z             },
2026-06-10T22:49:44.8165057Z             {
2026-06-10T22:49:44.8165182Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8165282Z               "line": 1198
2026-06-10T22:49:44.8165367Z             }
2026-06-10T22:49:44.8165459Z           ]
2026-06-10T22:49:44.8165549Z         },
2026-06-10T22:49:44.8165644Z         "unit": {
2026-06-10T22:49:44.8165740Z           "complete": true,
2026-06-10T22:49:44.8165959Z           "evidence": [
2026-06-10T22:49:44.8166050Z             {
2026-06-10T22:49:44.8166164Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T22:49:44.8166259Z               "line": 639
2026-06-10T22:49:44.8166350Z             },
2026-06-10T22:49:44.8166442Z             {
2026-06-10T22:49:44.8166550Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T22:49:44.8166649Z               "line": 660
2026-06-10T22:49:44.8166824Z             },
2026-06-10T22:49:44.8166914Z             {
2026-06-10T22:49:44.8167028Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-10T22:49:44.8167125Z               "line": 391
2026-06-10T22:49:44.8167205Z             },
2026-06-10T22:49:44.8167285Z             {
2026-06-10T22:49:44.8167396Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-10T22:49:44.8167491Z               "line": 93
2026-06-10T22:49:44.8167581Z             },
2026-06-10T22:49:44.8167668Z             {
2026-06-10T22:49:44.8167782Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-10T22:49:44.8167877Z               "line": 224
2026-06-10T22:49:44.8167968Z             },
2026-06-10T22:49:44.8168058Z             {
2026-06-10T22:49:44.8168168Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-10T22:49:44.8168263Z               "line": 96
2026-06-10T22:49:44.8168355Z             },
2026-06-10T22:49:44.8168435Z             {
2026-06-10T22:49:44.8168549Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-10T22:49:44.8168646Z               "line": 146
2026-06-10T22:49:44.8168740Z             },
2026-06-10T22:49:44.8168831Z             {
2026-06-10T22:49:44.8169031Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.8169126Z               "line": 502
2026-06-10T22:49:44.8169218Z             },
2026-06-10T22:49:44.8169309Z             {
2026-06-10T22:49:44.8169431Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-10T22:49:44.8169525Z               "line": 118
2026-06-10T22:49:44.8169622Z             },
2026-06-10T22:49:44.8169710Z             {
2026-06-10T22:49:44.8169823Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-10T22:49:44.8169920Z               "line": 148
2026-06-10T22:49:44.8170011Z             },
2026-06-10T22:49:44.8170100Z             {
2026-06-10T22:49:44.8170215Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.8170311Z               "line": 602
2026-06-10T22:49:44.8170405Z             }
2026-06-10T22:49:44.8170496Z           ]
2026-06-10T22:49:44.8170583Z         }
2026-06-10T22:49:44.8170668Z       }
2026-06-10T22:49:44.8170758Z     },
2026-06-10T22:49:44.8170844Z     {
2026-06-10T22:49:44.8170936Z       "id": "REQ-REACH-2",
2026-06-10T22:49:44.8171106Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-10T22:49:44.8171217Z       "requiredStages": [],
2026-06-10T22:49:44.8171312Z       "stages": {
2026-06-10T22:49:44.8171402Z         "doc": {
2026-06-10T22:49:44.8171504Z           "complete": false,
2026-06-10T22:49:44.8171603Z           "evidence": []
2026-06-10T22:49:44.8171698Z         },
2026-06-10T22:49:44.8171789Z         "impl": {
2026-06-10T22:49:44.8171889Z           "complete": false,
2026-06-10T22:49:44.8171979Z           "evidence": []
2026-06-10T22:49:44.8172068Z         },
2026-06-10T22:49:44.8172164Z         "int": {
2026-06-10T22:49:44.8172258Z           "complete": false,
2026-06-10T22:49:44.8172361Z           "evidence": []
2026-06-10T22:49:44.8172458Z         },
2026-06-10T22:49:44.8172549Z         "unit": {
2026-06-10T22:49:44.8172644Z           "complete": false,
2026-06-10T22:49:44.8172739Z           "evidence": []
2026-06-10T22:49:44.8172825Z         }
2026-06-10T22:49:44.8172921Z       }
2026-06-10T22:49:44.8173010Z     },
2026-06-10T22:49:44.8173092Z     {
2026-06-10T22:49:44.8173192Z       "id": "REQ-REL-1",
2026-06-10T22:49:44.8173568Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-10T22:49:44.8173779Z       "requiredStages": [
2026-06-10T22:49:44.8173874Z         "doc",
2026-06-10T22:49:44.8173964Z         "impl"
2026-06-10T22:49:44.8174056Z       ],
2026-06-10T22:49:44.8174146Z       "stages": {
2026-06-10T22:49:44.8174236Z         "doc": {
2026-06-10T22:49:44.8174337Z           "complete": true,
2026-06-10T22:49:44.8174433Z           "evidence": [
2026-06-10T22:49:44.8174522Z             {
2026-06-10T22:49:44.8174855Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-10T22:49:44.8174955Z               "line": 3
2026-06-10T22:49:44.8175041Z             }
2026-06-10T22:49:44.8175133Z           ]
2026-06-10T22:49:44.8175217Z         },
2026-06-10T22:49:44.8175307Z         "impl": {
2026-06-10T22:49:44.8175404Z           "complete": true,
2026-06-10T22:49:44.8175504Z           "evidence": [
2026-06-10T22:49:44.8175594Z             {
2026-06-10T22:49:44.8175719Z               "path": ".github/workflows/docs-publish.yml",
2026-06-10T22:49:44.8175828Z               "line": 11
2026-06-10T22:49:44.8175913Z             },
2026-06-10T22:49:44.8176005Z             {
2026-06-10T22:49:44.8176123Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8176218Z               "line": 265
2026-06-10T22:49:44.8176305Z             }
2026-06-10T22:49:44.8176391Z           ]
2026-06-10T22:49:44.8176481Z         },
2026-06-10T22:49:44.8176567Z         "int": {
2026-06-10T22:49:44.8176678Z           "complete": false,
2026-06-10T22:49:44.8176776Z           "evidence": []
2026-06-10T22:49:44.8176862Z         },
2026-06-10T22:49:44.8176954Z         "unit": {
2026-06-10T22:49:44.8177049Z           "complete": false,
2026-06-10T22:49:44.8177143Z           "evidence": []
2026-06-10T22:49:44.8177233Z         }
2026-06-10T22:49:44.8177329Z       }
2026-06-10T22:49:44.8177417Z     },
2026-06-10T22:49:44.8177503Z     {
2026-06-10T22:49:44.8177613Z       "id": "REQ-REL-2",
2026-06-10T22:49:44.8178075Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-10T22:49:44.8178184Z       "requiredStages": [
2026-06-10T22:49:44.8178276Z         "impl",
2026-06-10T22:49:44.8178371Z         "int"
2026-06-10T22:49:44.8178461Z       ],
2026-06-10T22:49:44.8178557Z       "stages": {
2026-06-10T22:49:44.8178647Z         "doc": {
2026-06-10T22:49:44.8178747Z           "complete": true,
2026-06-10T22:49:44.8178843Z           "evidence": [
2026-06-10T22:49:44.8178929Z             {
2026-06-10T22:49:44.8179143Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-10T22:49:44.8179235Z               "line": 6
2026-06-10T22:49:44.8179324Z             }
2026-06-10T22:49:44.8179415Z           ]
2026-06-10T22:49:44.8179506Z         },
2026-06-10T22:49:44.8179596Z         "impl": {
2026-06-10T22:49:44.8179691Z           "complete": true,
2026-06-10T22:49:44.8179793Z           "evidence": [
2026-06-10T22:49:44.8179883Z             {
2026-06-10T22:49:44.8180005Z               "path": ".github/workflows/release.yml",
2026-06-10T22:49:44.8180100Z               "line": 16
2026-06-10T22:49:44.8180186Z             },
2026-06-10T22:49:44.8180275Z             {
2026-06-10T22:49:44.8180384Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8180480Z               "line": 352
2026-06-10T22:49:44.8180571Z             },
2026-06-10T22:49:44.8180656Z             {
2026-06-10T22:49:44.8180775Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8180866Z               "line": 426
2026-06-10T22:49:44.8180965Z             },
2026-06-10T22:49:44.8181051Z             {
2026-06-10T22:49:44.8181162Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8181262Z               "line": 588
2026-06-10T22:49:44.8181347Z             },
2026-06-10T22:49:44.8181444Z             {
2026-06-10T22:49:44.8181548Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8181643Z               "line": 720
2026-06-10T22:49:44.8181834Z             }
2026-06-10T22:49:44.8181924Z           ]
2026-06-10T22:49:44.8182015Z         },
2026-06-10T22:49:44.8182102Z         "int": {
2026-06-10T22:49:44.8182196Z           "complete": true,
2026-06-10T22:49:44.8182287Z           "evidence": [
2026-06-10T22:49:44.8182378Z             {
2026-06-10T22:49:44.8182511Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-10T22:49:44.8182710Z               "line": 13
2026-06-10T22:49:44.8182804Z             }
2026-06-10T22:49:44.8182889Z           ]
2026-06-10T22:49:44.8182979Z         },
2026-06-10T22:49:44.8183070Z         "unit": {
2026-06-10T22:49:44.8183171Z           "complete": false,
2026-06-10T22:49:44.8183265Z           "evidence": []
2026-06-10T22:49:44.8183352Z         }
2026-06-10T22:49:44.8183443Z       }
2026-06-10T22:49:44.8183528Z     },
2026-06-10T22:49:44.8183618Z     {
2026-06-10T22:49:44.8183714Z       "id": "REQ-REL-3",
2026-06-10T22:49:44.8184138Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-10T22:49:44.8184248Z       "requiredStages": [
2026-06-10T22:49:44.8184339Z         "impl",
2026-06-10T22:49:44.8184429Z         "unit"
2026-06-10T22:49:44.8184515Z       ],
2026-06-10T22:49:44.8184611Z       "stages": {
2026-06-10T22:49:44.8184697Z         "doc": {
2026-06-10T22:49:44.8184806Z           "complete": false,
2026-06-10T22:49:44.8184897Z           "evidence": []
2026-06-10T22:49:44.8184993Z         },
2026-06-10T22:49:44.8185082Z         "impl": {
2026-06-10T22:49:44.8185178Z           "complete": true,
2026-06-10T22:49:44.8185275Z           "evidence": [
2026-06-10T22:49:44.8185364Z             {
2026-06-10T22:49:44.8185500Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8185601Z               "line": 237
2026-06-10T22:49:44.8185688Z             },
2026-06-10T22:49:44.8185773Z             {
2026-06-10T22:49:44.8185902Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8185997Z               "line": 289
2026-06-10T22:49:44.8186087Z             },
2026-06-10T22:49:44.8186183Z             {
2026-06-10T22:49:44.8186312Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8186402Z               "line": 329
2026-06-10T22:49:44.8186493Z             },
2026-06-10T22:49:44.8186579Z             {
2026-06-10T22:49:44.8186703Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8186798Z               "line": 353
2026-06-10T22:49:44.8186889Z             },
2026-06-10T22:49:44.8186979Z             {
2026-06-10T22:49:44.8187084Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8187181Z               "line": 394
2026-06-10T22:49:44.8187266Z             }
2026-06-10T22:49:44.8187355Z           ]
2026-06-10T22:49:44.8187442Z         },
2026-06-10T22:49:44.8187529Z         "int": {
2026-06-10T22:49:44.8187627Z           "complete": false,
2026-06-10T22:49:44.8187727Z           "evidence": []
2026-06-10T22:49:44.8187813Z         },
2026-06-10T22:49:44.8187903Z         "unit": {
2026-06-10T22:49:44.8188001Z           "complete": true,
2026-06-10T22:49:44.8188091Z           "evidence": [
2026-06-10T22:49:44.8188182Z             {
2026-06-10T22:49:44.8188306Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8188396Z               "line": 992
2026-06-10T22:49:44.8188492Z             },
2026-06-10T22:49:44.8188588Z             {
2026-06-10T22:49:44.8188711Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8188803Z               "line": 1051
2026-06-10T22:49:44.8188893Z             }
2026-06-10T22:49:44.8189040Z           ]
2026-06-10T22:49:44.8189117Z         }
2026-06-10T22:49:44.8189207Z       }
2026-06-10T22:49:44.8189293Z     },
2026-06-10T22:49:44.8189383Z     {
2026-06-10T22:49:44.8189490Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-10T22:49:44.8189674Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-10T22:49:44.8189884Z       "requiredStages": [
2026-06-10T22:49:44.8189970Z         "impl",
2026-06-10T22:49:44.8190066Z         "unit"
2026-06-10T22:49:44.8190157Z       ],
2026-06-10T22:49:44.8190247Z       "stages": {
2026-06-10T22:49:44.8190333Z         "doc": {
2026-06-10T22:49:44.8190434Z           "complete": false,
2026-06-10T22:49:44.8190527Z           "evidence": []
2026-06-10T22:49:44.8190618Z         },
2026-06-10T22:49:44.8190807Z         "impl": {
2026-06-10T22:49:44.8190906Z           "complete": true,
2026-06-10T22:49:44.8191002Z           "evidence": [
2026-06-10T22:49:44.8191088Z             {
2026-06-10T22:49:44.8191216Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.8191306Z               "line": 18
2026-06-10T22:49:44.8191393Z             },
2026-06-10T22:49:44.8191484Z             {
2026-06-10T22:49:44.8191597Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.8191689Z               "line": 35
2026-06-10T22:49:44.8191774Z             },
2026-06-10T22:49:44.8191859Z             {
2026-06-10T22:49:44.8191989Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.8192117Z               "line": 72
2026-06-10T22:49:44.8192208Z             }
2026-06-10T22:49:44.8192299Z           ]
2026-06-10T22:49:44.8192385Z         },
2026-06-10T22:49:44.8192475Z         "int": {
2026-06-10T22:49:44.8192580Z           "complete": false,
2026-06-10T22:49:44.8192681Z           "evidence": []
2026-06-10T22:49:44.8192775Z         },
2026-06-10T22:49:44.8192866Z         "unit": {
2026-06-10T22:49:44.8192958Z           "complete": true,
2026-06-10T22:49:44.8193099Z           "evidence": [
2026-06-10T22:49:44.8193188Z             {
2026-06-10T22:49:44.8193304Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.8193402Z               "line": 214
2026-06-10T22:49:44.8193487Z             },
2026-06-10T22:49:44.8193578Z             {
2026-06-10T22:49:44.8193688Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.8193792Z               "line": 231
2026-06-10T22:49:44.8193878Z             },
2026-06-10T22:49:44.8193974Z             {
2026-06-10T22:49:44.8194092Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.8194188Z               "line": 240
2026-06-10T22:49:44.8194279Z             }
2026-06-10T22:49:44.8194374Z           ]
2026-06-10T22:49:44.8194474Z         }
2026-06-10T22:49:44.8194571Z       }
2026-06-10T22:49:44.8194675Z     },
2026-06-10T22:49:44.8194765Z     {
2026-06-10T22:49:44.8194871Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-10T22:49:44.8195065Z       "title": "Hostable endpoint-types capability declaration",
2026-06-10T22:49:44.8195166Z       "requiredStages": [
2026-06-10T22:49:44.8195257Z         "impl",
2026-06-10T22:49:44.8195347Z         "unit"
2026-06-10T22:49:44.8195437Z       ],
2026-06-10T22:49:44.8195530Z       "stages": {
2026-06-10T22:49:44.8195618Z         "doc": {
2026-06-10T22:49:44.8195747Z           "complete": false,
2026-06-10T22:49:44.8195849Z           "evidence": []
2026-06-10T22:49:44.8195938Z         },
2026-06-10T22:49:44.8196042Z         "impl": {
2026-06-10T22:49:44.8196142Z           "complete": true,
2026-06-10T22:49:44.8196253Z           "evidence": [
2026-06-10T22:49:44.8196347Z             {
2026-06-10T22:49:44.8196481Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.8196567Z               "line": 404
2026-06-10T22:49:44.8196657Z             }
2026-06-10T22:49:44.8196748Z           ]
2026-06-10T22:49:44.8196849Z         },
2026-06-10T22:49:44.8196939Z         "int": {
2026-06-10T22:49:44.8197038Z           "complete": false,
2026-06-10T22:49:44.8197135Z           "evidence": []
2026-06-10T22:49:44.8197220Z         },
2026-06-10T22:49:44.8197310Z         "unit": {
2026-06-10T22:49:44.8197406Z           "complete": true,
2026-06-10T22:49:44.8197507Z           "evidence": [
2026-06-10T22:49:44.8197592Z             {
2026-06-10T22:49:44.8197716Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.8197901Z               "line": 641
2026-06-10T22:49:44.8197987Z             }
2026-06-10T22:49:44.8198079Z           ]
2026-06-10T22:49:44.8198165Z         }
2026-06-10T22:49:44.8198258Z       }
2026-06-10T22:49:44.8198343Z     },
2026-06-10T22:49:44.8198434Z     {
2026-06-10T22:49:44.8198533Z       "id": "REQ-SEAM-HISTORY",
2026-06-10T22:49:44.8198719Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-10T22:49:44.8198899Z       "requiredStages": [
2026-06-10T22:49:44.8199096Z         "impl",
2026-06-10T22:49:44.8199223Z         "unit",
2026-06-10T22:49:44.8199329Z         "int"
2026-06-10T22:49:44.8199425Z       ],
2026-06-10T22:49:44.8199519Z       "stages": {
2026-06-10T22:49:44.8199605Z         "doc": {
2026-06-10T22:49:44.8199706Z           "complete": false,
2026-06-10T22:49:44.8199801Z           "evidence": []
2026-06-10T22:49:44.8199891Z         },
2026-06-10T22:49:44.8199983Z         "impl": {
2026-06-10T22:49:44.8200097Z           "complete": true,
2026-06-10T22:49:44.8200192Z           "evidence": [
2026-06-10T22:49:44.8200288Z             {
2026-06-10T22:49:44.8200407Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T22:49:44.8200502Z               "line": 24
2026-06-10T22:49:44.8200598Z             },
2026-06-10T22:49:44.8200684Z             {
2026-06-10T22:49:44.8200807Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T22:49:44.8200918Z               "line": 22
2026-06-10T22:49:44.8201004Z             }
2026-06-10T22:49:44.8201092Z           ]
2026-06-10T22:49:44.8201178Z         },
2026-06-10T22:49:44.8201268Z         "int": {
2026-06-10T22:49:44.8201363Z           "complete": true,
2026-06-10T22:49:44.8201461Z           "evidence": [
2026-06-10T22:49:44.8201557Z             {
2026-06-10T22:49:44.8201677Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T22:49:44.8201771Z               "line": 260
2026-06-10T22:49:44.8201861Z             }
2026-06-10T22:49:44.8201963Z           ]
2026-06-10T22:49:44.8202040Z         },
2026-06-10T22:49:44.8202133Z         "unit": {
2026-06-10T22:49:44.8202230Z           "complete": true,
2026-06-10T22:49:44.8202320Z           "evidence": [
2026-06-10T22:49:44.8202415Z             {
2026-06-10T22:49:44.8202530Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T22:49:44.8202626Z               "line": 167
2026-06-10T22:49:44.8202711Z             },
2026-06-10T22:49:44.8202806Z             {
2026-06-10T22:49:44.8202936Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T22:49:44.8203030Z               "line": 196
2026-06-10T22:49:44.8203121Z             },
2026-06-10T22:49:44.8203198Z             {
2026-06-10T22:49:44.8203306Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T22:49:44.8203397Z               "line": 216
2026-06-10T22:49:44.8203489Z             },
2026-06-10T22:49:44.8203584Z             {
2026-06-10T22:49:44.8203692Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T22:49:44.8203797Z               "line": 199
2026-06-10T22:49:44.8203873Z             },
2026-06-10T22:49:44.8203957Z             {
2026-06-10T22:49:44.8204071Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T22:49:44.8204172Z               "line": 219
2026-06-10T22:49:44.8204254Z             },
2026-06-10T22:49:44.8204338Z             {
2026-06-10T22:49:44.8204457Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T22:49:44.8204544Z               "line": 244
2026-06-10T22:49:44.8204634Z             },
2026-06-10T22:49:44.8204719Z             {
2026-06-10T22:49:44.8204830Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T22:49:44.8204921Z               "line": 269
2026-06-10T22:49:44.8205005Z             },
2026-06-10T22:49:44.8205087Z             {
2026-06-10T22:49:44.8205201Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T22:49:44.8205296Z               "line": 290
2026-06-10T22:49:44.8205382Z             },
2026-06-10T22:49:44.8205597Z             {
2026-06-10T22:49:44.8205717Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T22:49:44.8205812Z               "line": 317
2026-06-10T22:49:44.8205902Z             }
2026-06-10T22:49:44.8205993Z           ]
2026-06-10T22:49:44.8206090Z         }
2026-06-10T22:49:44.8206169Z       }
2026-06-10T22:49:44.8206255Z     },
2026-06-10T22:49:44.8206342Z     {
2026-06-10T22:49:44.8206447Z       "id": "REQ-SEAM-INJECT",
2026-06-10T22:49:44.8206707Z       "title": "inject-input methods configurable per activity-state",
2026-06-10T22:49:44.8206808Z       "requiredStages": [
2026-06-10T22:49:44.8206902Z         "impl",
2026-06-10T22:49:44.8206993Z         "unit"
2026-06-10T22:49:44.8207080Z       ],
2026-06-10T22:49:44.8207179Z       "stages": {
2026-06-10T22:49:44.8207274Z         "doc": {
2026-06-10T22:49:44.8207375Z           "complete": false,
2026-06-10T22:49:44.8207470Z           "evidence": []
2026-06-10T22:49:44.8207556Z         },
2026-06-10T22:49:44.8207646Z         "impl": {
2026-06-10T22:49:44.8207747Z           "complete": true,
2026-06-10T22:49:44.8207847Z           "evidence": [
2026-06-10T22:49:44.8207932Z             {
2026-06-10T22:49:44.8208052Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.8208147Z               "line": 19
2026-06-10T22:49:44.8208232Z             },
2026-06-10T22:49:44.8208325Z             {
2026-06-10T22:49:44.8208442Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.8208547Z               "line": 111
2026-06-10T22:49:44.8208630Z             }
2026-06-10T22:49:44.8208715Z           ]
2026-06-10T22:49:44.8208804Z         },
2026-06-10T22:49:44.8208885Z         "int": {
2026-06-10T22:49:44.8209051Z           "complete": false,
2026-06-10T22:49:44.8209149Z           "evidence": []
2026-06-10T22:49:44.8209250Z         },
2026-06-10T22:49:44.8209327Z         "unit": {
2026-06-10T22:49:44.8209427Z           "complete": true,
2026-06-10T22:49:44.8209521Z           "evidence": [
2026-06-10T22:49:44.8209627Z             {
2026-06-10T22:49:44.8209732Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.8209831Z               "line": 320
2026-06-10T22:49:44.8209914Z             },
2026-06-10T22:49:44.8209999Z             {
2026-06-10T22:49:44.8210117Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.8210204Z               "line": 340
2026-06-10T22:49:44.8210285Z             }
2026-06-10T22:49:44.8210385Z           ]
2026-06-10T22:49:44.8210475Z         }
2026-06-10T22:49:44.8210562Z       }
2026-06-10T22:49:44.8210647Z     },
2026-06-10T22:49:44.8210743Z     {
2026-06-10T22:49:44.8210848Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-10T22:49:44.8210976Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-10T22:49:44.8211072Z       "requiredStages": [
2026-06-10T22:49:44.8211163Z         "impl",
2026-06-10T22:49:44.8211258Z         "unit"
2026-06-10T22:49:44.8211343Z       ],
2026-06-10T22:49:44.8211439Z       "stages": {
2026-06-10T22:49:44.8211535Z         "doc": {
2026-06-10T22:49:44.8211634Z           "complete": false,
2026-06-10T22:49:44.8211719Z           "evidence": []
2026-06-10T22:49:44.8211809Z         },
2026-06-10T22:49:44.8211900Z         "impl": {
2026-06-10T22:49:44.8211998Z           "complete": true,
2026-06-10T22:49:44.8212093Z           "evidence": [
2026-06-10T22:49:44.8212179Z             {
2026-06-10T22:49:44.8212289Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8212384Z               "line": 18
2026-06-10T22:49:44.8212475Z             },
2026-06-10T22:49:44.8212570Z             {
2026-06-10T22:49:44.8212689Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8212785Z               "line": 309
2026-06-10T22:49:44.8212866Z             }
2026-06-10T22:49:44.8212961Z           ]
2026-06-10T22:49:44.8213047Z         },
2026-06-10T22:49:44.8213143Z         "int": {
2026-06-10T22:49:44.8213237Z           "complete": false,
2026-06-10T22:49:44.8213333Z           "evidence": []
2026-06-10T22:49:44.8213520Z         },
2026-06-10T22:49:44.8213610Z         "unit": {
2026-06-10T22:49:44.8213720Z           "complete": true,
2026-06-10T22:49:44.8213811Z           "evidence": [
2026-06-10T22:49:44.8213900Z             {
2026-06-10T22:49:44.8214015Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8214112Z               "line": 559
2026-06-10T22:49:44.8214200Z             },
2026-06-10T22:49:44.8214291Z             {
2026-06-10T22:49:44.8214504Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8214593Z               "line": 569
2026-06-10T22:49:44.8214689Z             }
2026-06-10T22:49:44.8214780Z           ]
2026-06-10T22:49:44.8214865Z         }
2026-06-10T22:49:44.8214955Z       }
2026-06-10T22:49:44.8215042Z     },
2026-06-10T22:49:44.8215132Z     {
2026-06-10T22:49:44.8215227Z       "id": "REQ-SEAM-PSYCHE",
2026-06-10T22:49:44.8215371Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-10T22:49:44.8215471Z       "requiredStages": [
2026-06-10T22:49:44.8215561Z         "impl",
2026-06-10T22:49:44.8215652Z         "unit",
2026-06-10T22:49:44.8215738Z         "int"
2026-06-10T22:49:44.8215824Z       ],
2026-06-10T22:49:44.8215914Z       "stages": {
2026-06-10T22:49:44.8216011Z         "doc": {
2026-06-10T22:49:44.8216104Z           "complete": false,
2026-06-10T22:49:44.8216195Z           "evidence": []
2026-06-10T22:49:44.8216277Z         },
2026-06-10T22:49:44.8216373Z         "impl": {
2026-06-10T22:49:44.8216472Z           "complete": true,
2026-06-10T22:49:44.8216563Z           "evidence": [
2026-06-10T22:49:44.8216659Z             {
2026-06-10T22:49:44.8216776Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-10T22:49:44.8216868Z               "line": 19
2026-06-10T22:49:44.8216964Z             },
2026-06-10T22:49:44.8217049Z             {
2026-06-10T22:49:44.8217172Z               "path": "crates/spt/src/api/live.rs",
2026-06-10T22:49:44.8217257Z               "line": 12
2026-06-10T22:49:44.8217349Z             },
2026-06-10T22:49:44.8217444Z             {
2026-06-10T22:49:44.8217563Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8217659Z               "line": 209
2026-06-10T22:49:44.8217749Z             }
2026-06-10T22:49:44.8217839Z           ]
2026-06-10T22:49:44.8217926Z         },
2026-06-10T22:49:44.8218021Z         "int": {
2026-06-10T22:49:44.8218116Z           "complete": true,
2026-06-10T22:49:44.8218216Z           "evidence": [
2026-06-10T22:49:44.8218297Z             {
2026-06-10T22:49:44.8218425Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T22:49:44.8218522Z               "line": 259
2026-06-10T22:49:44.8218612Z             }
2026-06-10T22:49:44.8218693Z           ]
2026-06-10T22:49:44.8218788Z         },
2026-06-10T22:49:44.8218880Z         "unit": {
2026-06-10T22:49:44.8219084Z           "complete": true,
2026-06-10T22:49:44.8219180Z           "evidence": [
2026-06-10T22:49:44.8219275Z             {
2026-06-10T22:49:44.8219388Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-10T22:49:44.8219497Z               "line": 161
2026-06-10T22:49:44.8219597Z             },
2026-06-10T22:49:44.8219682Z             {
2026-06-10T22:49:44.8219796Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-10T22:49:44.8219892Z               "line": 168
2026-06-10T22:49:44.8219972Z             },
2026-06-10T22:49:44.8220062Z             {
2026-06-10T22:49:44.8220178Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-10T22:49:44.8220273Z               "line": 191
2026-06-10T22:49:44.8220363Z             },
2026-06-10T22:49:44.8220454Z             {
2026-06-10T22:49:44.8220569Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-10T22:49:44.8220668Z               "line": 106
2026-06-10T22:49:44.8220745Z             },
2026-06-10T22:49:44.8220841Z             {
2026-06-10T22:49:44.8220954Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-10T22:49:44.8221045Z               "line": 137
2026-06-10T22:49:44.8221241Z             },
2026-06-10T22:49:44.8221331Z             {
2026-06-10T22:49:44.8221456Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-10T22:49:44.8221551Z               "line": 161
2026-06-10T22:49:44.8221636Z             }
2026-06-10T22:49:44.8221728Z           ]
2026-06-10T22:49:44.8221814Z         }
2026-06-10T22:49:44.8221898Z       }
2026-06-10T22:49:44.8221989Z     },
2026-06-10T22:49:44.8222067Z     {
2026-06-10T22:49:44.8222260Z       "id": "REQ-SEAM-RESUME",
2026-06-10T22:49:44.8222441Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-10T22:49:44.8222544Z       "requiredStages": [
2026-06-10T22:49:44.8222634Z         "impl",
2026-06-10T22:49:44.8222725Z         "unit"
2026-06-10T22:49:44.8222811Z       ],
2026-06-10T22:49:44.8222906Z       "stages": {
2026-06-10T22:49:44.8222996Z         "doc": {
2026-06-10T22:49:44.8223098Z           "complete": false,
2026-06-10T22:49:44.8223192Z           "evidence": []
2026-06-10T22:49:44.8223282Z         },
2026-06-10T22:49:44.8223374Z         "impl": {
2026-06-10T22:49:44.8223469Z           "complete": true,
2026-06-10T22:49:44.8223568Z           "evidence": [
2026-06-10T22:49:44.8223660Z             {
2026-06-10T22:49:44.8223774Z               "path": "crates/spt-live/src/resume.rs",
2026-06-10T22:49:44.8223869Z               "line": 19
2026-06-10T22:49:44.8223955Z             }
2026-06-10T22:49:44.8224051Z           ]
2026-06-10T22:49:44.8224140Z         },
2026-06-10T22:49:44.8224232Z         "int": {
2026-06-10T22:49:44.8224328Z           "complete": false,
2026-06-10T22:49:44.8224418Z           "evidence": []
2026-06-10T22:49:44.8224513Z         },
2026-06-10T22:49:44.8224595Z         "unit": {
2026-06-10T22:49:44.8224686Z           "complete": true,
2026-06-10T22:49:44.8224779Z           "evidence": [
2026-06-10T22:49:44.8224888Z             {
2026-06-10T22:49:44.8225003Z               "path": "crates/spt-live/src/resume.rs",
2026-06-10T22:49:44.8225106Z               "line": 179
2026-06-10T22:49:44.8225201Z             },
2026-06-10T22:49:44.8225292Z             {
2026-06-10T22:49:44.8225407Z               "path": "crates/spt-live/src/resume.rs",
2026-06-10T22:49:44.8225501Z               "line": 201
2026-06-10T22:49:44.8225597Z             },
2026-06-10T22:49:44.8225683Z             {
2026-06-10T22:49:44.8225801Z               "path": "crates/spt-live/src/resume.rs",
2026-06-10T22:49:44.8225898Z               "line": 222
2026-06-10T22:49:44.8225993Z             }
2026-06-10T22:49:44.8226083Z           ]
2026-06-10T22:49:44.8226174Z         }
2026-06-10T22:49:44.8226265Z       }
2026-06-10T22:49:44.8226355Z     },
2026-06-10T22:49:44.8226450Z     {
2026-06-10T22:49:44.8226561Z       "id": "REQ-SEAM-SPAWN",
2026-06-10T22:49:44.8226665Z       "title": "spawn-session seam",
2026-06-10T22:49:44.8226774Z       "requiredStages": [
2026-06-10T22:49:44.8229324Z         "impl",
2026-06-10T22:49:44.8229445Z         "unit"
2026-06-10T22:49:44.8229544Z       ],
2026-06-10T22:49:44.8229639Z       "stages": {
2026-06-10T22:49:44.8229745Z         "doc": {
2026-06-10T22:49:44.8229849Z           "complete": false,
2026-06-10T22:49:44.8229949Z           "evidence": []
2026-06-10T22:49:44.8230039Z         },
2026-06-10T22:49:44.8230134Z         "impl": {
2026-06-10T22:49:44.8230237Z           "complete": true,
2026-06-10T22:49:44.8230336Z           "evidence": [
2026-06-10T22:49:44.8230428Z             {
2026-06-10T22:49:44.8230561Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.8230671Z               "line": 20
2026-06-10T22:49:44.8230762Z             }
2026-06-10T22:49:44.8230861Z           ]
2026-06-10T22:49:44.8230947Z         },
2026-06-10T22:49:44.8231039Z         "int": {
2026-06-10T22:49:44.8231138Z           "complete": false,
2026-06-10T22:49:44.8231238Z           "evidence": []
2026-06-10T22:49:44.8231329Z         },
2026-06-10T22:49:44.8231415Z         "unit": {
2026-06-10T22:49:44.8231510Z           "complete": true,
2026-06-10T22:49:44.8231605Z           "evidence": [
2026-06-10T22:49:44.8231825Z             {
2026-06-10T22:49:44.8231959Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.8232054Z               "line": 435
2026-06-10T22:49:44.8232144Z             },
2026-06-10T22:49:44.8232234Z             {
2026-06-10T22:49:44.8232355Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.8232449Z               "line": 442
2026-06-10T22:49:44.8232540Z             },
2026-06-10T22:49:44.8232731Z             {
2026-06-10T22:49:44.8232848Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.8232944Z               "line": 452
2026-06-10T22:49:44.8233029Z             },
2026-06-10T22:49:44.8233123Z             {
2026-06-10T22:49:44.8233237Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.8233338Z               "line": 458
2026-06-10T22:49:44.8233433Z             },
2026-06-10T22:49:44.8233523Z             {
2026-06-10T22:49:44.8233648Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.8233748Z               "line": 483
2026-06-10T22:49:44.8233837Z             },
2026-06-10T22:49:44.8233930Z             {
2026-06-10T22:49:44.8234044Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T22:49:44.8234143Z               "line": 520
2026-06-10T22:49:44.8234230Z             }
2026-06-10T22:49:44.8234320Z           ]
2026-06-10T22:49:44.8234406Z         }
2026-06-10T22:49:44.8234511Z       }
2026-06-10T22:49:44.8234602Z     },
2026-06-10T22:49:44.8234691Z     {
2026-06-10T22:49:44.8234801Z       "id": "REQ-SEAM-UPDATE",
2026-06-10T22:49:44.8234973Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-10T22:49:44.8235078Z       "requiredStages": [
2026-06-10T22:49:44.8235160Z         "impl",
2026-06-10T22:49:44.8235250Z         "unit"
2026-06-10T22:49:44.8235335Z       ],
2026-06-10T22:49:44.8235429Z       "stages": {
2026-06-10T22:49:44.8235521Z         "doc": {
2026-06-10T22:49:44.8235619Z           "complete": false,
2026-06-10T22:49:44.8235718Z           "evidence": []
2026-06-10T22:49:44.8235809Z         },
2026-06-10T22:49:44.8235900Z         "impl": {
2026-06-10T22:49:44.8235986Z           "complete": true,
2026-06-10T22:49:44.8236080Z           "evidence": [
2026-06-10T22:49:44.8236172Z             {
2026-06-10T22:49:44.8236310Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.8236405Z               "line": 28
2026-06-10T22:49:44.8236496Z             },
2026-06-10T22:49:44.8236591Z             {
2026-06-10T22:49:44.8236724Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.8236816Z               "line": 83
2026-06-10T22:49:44.8236910Z             }
2026-06-10T22:49:44.8236996Z           ]
2026-06-10T22:49:44.8237077Z         },
2026-06-10T22:49:44.8237155Z         "int": {
2026-06-10T22:49:44.8237249Z           "complete": false,
2026-06-10T22:49:44.8237349Z           "evidence": []
2026-06-10T22:49:44.8237436Z         },
2026-06-10T22:49:44.8237530Z         "unit": {
2026-06-10T22:49:44.8237626Z           "complete": true,
2026-06-10T22:49:44.8237722Z           "evidence": [
2026-06-10T22:49:44.8237808Z             {
2026-06-10T22:49:44.8237945Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.8238042Z               "line": 286
2026-06-10T22:49:44.8238137Z             },
2026-06-10T22:49:44.8238226Z             {
2026-06-10T22:49:44.8238349Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.8238441Z               "line": 297
2026-06-10T22:49:44.8238531Z             }
2026-06-10T22:49:44.8238621Z           ]
2026-06-10T22:49:44.8238717Z         }
2026-06-10T22:49:44.8238802Z       }
2026-06-10T22:49:44.8238893Z     },
2026-06-10T22:49:44.8239066Z     {
2026-06-10T22:49:44.8239156Z       "id": "REQ-SEC-1",
2026-06-10T22:49:44.8239560Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-10T22:49:44.8239784Z       "requiredStages": [
2026-06-10T22:49:44.8239875Z         "impl",
2026-06-10T22:49:44.8239967Z         "unit"
2026-06-10T22:49:44.8240057Z       ],
2026-06-10T22:49:44.8240146Z       "stages": {
2026-06-10T22:49:44.8240238Z         "doc": {
2026-06-10T22:49:44.8240334Z           "complete": false,
2026-06-10T22:49:44.8240428Z           "evidence": []
2026-06-10T22:49:44.8240523Z         },
2026-06-10T22:49:44.8240694Z         "impl": {
2026-06-10T22:49:44.8240797Z           "complete": true,
2026-06-10T22:49:44.8240882Z           "evidence": [
2026-06-10T22:49:44.8240969Z             {
2026-06-10T22:49:44.8241093Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T22:49:44.8241192Z               "line": 84
2026-06-10T22:49:44.8241288Z             },
2026-06-10T22:49:44.8241374Z             {
2026-06-10T22:49:44.8241488Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T22:49:44.8241584Z               "line": 114
2026-06-10T22:49:44.8241684Z             },
2026-06-10T22:49:44.8241764Z             {
2026-06-10T22:49:44.8241889Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T22:49:44.8241994Z               "line": 128
2026-06-10T22:49:44.8242079Z             },
2026-06-10T22:49:44.8242170Z             {
2026-06-10T22:49:44.8242285Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T22:49:44.8242394Z               "line": 108
2026-06-10T22:49:44.8242484Z             },
2026-06-10T22:49:44.8242567Z             {
2026-06-10T22:49:44.8242685Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T22:49:44.8242766Z               "line": 129
2026-06-10T22:49:44.8242863Z             },
2026-06-10T22:49:44.8242952Z             {
2026-06-10T22:49:44.8243071Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T22:49:44.8243163Z               "line": 142
2026-06-10T22:49:44.8243253Z             },
2026-06-10T22:49:44.8243343Z             {
2026-06-10T22:49:44.8243456Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T22:49:44.8243547Z               "line": 208
2026-06-10T22:49:44.8243626Z             },
2026-06-10T22:49:44.8243721Z             {
2026-06-10T22:49:44.8243841Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T22:49:44.8243932Z               "line": 234
2026-06-10T22:49:44.8244007Z             },
2026-06-10T22:49:44.8244088Z             {
2026-06-10T22:49:44.8244203Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8244303Z               "line": 4065
2026-06-10T22:49:44.8244384Z             }
2026-06-10T22:49:44.8244466Z           ]
2026-06-10T22:49:44.8244546Z         },
2026-06-10T22:49:44.8244641Z         "int": {
2026-06-10T22:49:44.8244737Z           "complete": false,
2026-06-10T22:49:44.8244833Z           "evidence": []
2026-06-10T22:49:44.8244909Z         },
2026-06-10T22:49:44.8244999Z         "unit": {
2026-06-10T22:49:44.8245100Z           "complete": true,
2026-06-10T22:49:44.8245195Z           "evidence": [
2026-06-10T22:49:44.8245290Z             {
2026-06-10T22:49:44.8245410Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T22:49:44.8245505Z               "line": 140
2026-06-10T22:49:44.8245585Z             },
2026-06-10T22:49:44.8245681Z             {
2026-06-10T22:49:44.8245796Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T22:49:44.8245895Z               "line": 192
2026-06-10T22:49:44.8245989Z             },
2026-06-10T22:49:44.8246081Z             {
2026-06-10T22:49:44.8246193Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T22:49:44.8246283Z               "line": 233
2026-06-10T22:49:44.8246359Z             },
2026-06-10T22:49:44.8246451Z             {
2026-06-10T22:49:44.8246574Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-10T22:49:44.8246693Z               "line": 138
2026-06-10T22:49:44.8246785Z             },
2026-06-10T22:49:44.8246884Z             {
2026-06-10T22:49:44.8246994Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T22:49:44.8247161Z               "line": 246
2026-06-10T22:49:44.8247251Z             },
2026-06-10T22:49:44.8247333Z             {
2026-06-10T22:49:44.8247447Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T22:49:44.8247537Z               "line": 276
2026-06-10T22:49:44.8247628Z             },
2026-06-10T22:49:44.8247705Z             {
2026-06-10T22:49:44.8247824Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T22:49:44.8247992Z               "line": 309
2026-06-10T22:49:44.8248072Z             },
2026-06-10T22:49:44.8248157Z             {
2026-06-10T22:49:44.8248272Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T22:49:44.8248368Z               "line": 328
2026-06-10T22:49:44.8248448Z             },
2026-06-10T22:49:44.8248538Z             {
2026-06-10T22:49:44.8248649Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T22:49:44.8248739Z               "line": 361
2026-06-10T22:49:44.8248828Z             },
2026-06-10T22:49:44.8248919Z             {
2026-06-10T22:49:44.8249115Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T22:49:44.8249214Z               "line": 385
2026-06-10T22:49:44.8249301Z             },
2026-06-10T22:49:44.8249387Z             {
2026-06-10T22:49:44.8249491Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8249587Z               "line": 5650
2026-06-10T22:49:44.8249668Z             }
2026-06-10T22:49:44.8249754Z           ]
2026-06-10T22:49:44.8249839Z         }
2026-06-10T22:49:44.8249926Z       }
2026-06-10T22:49:44.8250011Z     },
2026-06-10T22:49:44.8250092Z     {
2026-06-10T22:49:44.8250192Z       "id": "REQ-SHELL-1",
2026-06-10T22:49:44.8251035Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-10T22:49:44.8251144Z       "requiredStages": [
2026-06-10T22:49:44.8251235Z         "impl",
2026-06-10T22:49:44.8251320Z         "unit",
2026-06-10T22:49:44.8251410Z         "int"
2026-06-10T22:49:44.8251500Z       ],
2026-06-10T22:49:44.8251591Z       "stages": {
2026-06-10T22:49:44.8251681Z         "doc": {
2026-06-10T22:49:44.8251776Z           "complete": false,
2026-06-10T22:49:44.8251878Z           "evidence": []
2026-06-10T22:49:44.8251973Z         },
2026-06-10T22:49:44.8252091Z         "impl": {
2026-06-10T22:49:44.8252183Z           "complete": true,
2026-06-10T22:49:44.8252283Z           "evidence": [
2026-06-10T22:49:44.8252367Z             {
2026-06-10T22:49:44.8252502Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T22:49:44.8252602Z               "line": 94
2026-06-10T22:49:44.8252687Z             },
2026-06-10T22:49:44.8252779Z             {
2026-06-10T22:49:44.8252902Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T22:49:44.8253007Z               "line": 119
2026-06-10T22:49:44.8253098Z             },
2026-06-10T22:49:44.8253193Z             {
2026-06-10T22:49:44.8253321Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T22:49:44.8253413Z               "line": 27
2026-06-10T22:49:44.8253504Z             },
2026-06-10T22:49:44.8253593Z             {
2026-06-10T22:49:44.8253719Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T22:49:44.8253819Z               "line": 52
2026-06-10T22:49:44.8253917Z             },
2026-06-10T22:49:44.8254006Z             {
2026-06-10T22:49:44.8254127Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T22:49:44.8254229Z               "line": 132
2026-06-10T22:49:44.8254314Z             },
2026-06-10T22:49:44.8254410Z             {
2026-06-10T22:49:44.8254529Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T22:49:44.8254624Z               "line": 164
2026-06-10T22:49:44.8254711Z             },
2026-06-10T22:49:44.8254901Z             {
2026-06-10T22:49:44.8255021Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8255116Z               "line": 22
2026-06-10T22:49:44.8255211Z             },
2026-06-10T22:49:44.8255297Z             {
2026-06-10T22:49:44.8255421Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8255526Z               "line": 65
2026-06-10T22:49:44.8255611Z             },
2026-06-10T22:49:44.8255798Z             {
2026-06-10T22:49:44.8255921Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8256018Z               "line": 76
2026-06-10T22:49:44.8256112Z             },
2026-06-10T22:49:44.8256198Z             {
2026-06-10T22:49:44.8256324Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8256413Z               "line": 150
2026-06-10T22:49:44.8256507Z             },
2026-06-10T22:49:44.8256593Z             {
2026-06-10T22:49:44.8256711Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8256815Z               "line": 209
2026-06-10T22:49:44.8256905Z             },
2026-06-10T22:49:44.8256996Z             {
2026-06-10T22:49:44.8257110Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8257205Z               "line": 246
2026-06-10T22:49:44.8257292Z             },
2026-06-10T22:49:44.8257383Z             {
2026-06-10T22:49:44.8257510Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8257607Z               "line": 267
2026-06-10T22:49:44.8257697Z             },
2026-06-10T22:49:44.8257782Z             {
2026-06-10T22:49:44.8257908Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8257998Z               "line": 280
2026-06-10T22:49:44.8258097Z             },
2026-06-10T22:49:44.8258188Z             {
2026-06-10T22:49:44.8258307Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.8258403Z               "line": 207
2026-06-10T22:49:44.8258488Z             },
2026-06-10T22:49:44.8258594Z             {
2026-06-10T22:49:44.8258712Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.8258813Z               "line": 223
2026-06-10T22:49:44.8258904Z             },
2026-06-10T22:49:44.8259070Z             {
2026-06-10T22:49:44.8259191Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T22:49:44.8259304Z               "line": 41
2026-06-10T22:49:44.8259398Z             },
2026-06-10T22:49:44.8259488Z             {
2026-06-10T22:49:44.8259609Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T22:49:44.8259703Z               "line": 204
2026-06-10T22:49:44.8259789Z             },
2026-06-10T22:49:44.8259881Z             {
2026-06-10T22:49:44.8259994Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T22:49:44.8260094Z               "line": 156
2026-06-10T22:49:44.8260181Z             },
2026-06-10T22:49:44.8260271Z             {
2026-06-10T22:49:44.8260384Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T22:49:44.8260481Z               "line": 295
2026-06-10T22:49:44.8260576Z             },
2026-06-10T22:49:44.8260666Z             {
2026-06-10T22:49:44.8260777Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T22:49:44.8260872Z               "line": 345
2026-06-10T22:49:44.8260958Z             },
2026-06-10T22:49:44.8261048Z             {
2026-06-10T22:49:44.8261168Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.8261271Z               "line": 261
2026-06-10T22:49:44.8261358Z             },
2026-06-10T22:49:44.8261454Z             {
2026-06-10T22:49:44.8261568Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8261667Z               "line": 4563
2026-06-10T22:49:44.8261753Z             },
2026-06-10T22:49:44.8261843Z             {
2026-06-10T22:49:44.8261950Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8262046Z               "line": 4713
2026-06-10T22:49:44.8262133Z             },
2026-06-10T22:49:44.8262327Z             {
2026-06-10T22:49:44.8262423Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8262528Z               "line": 4750
2026-06-10T22:49:44.8262608Z             }
2026-06-10T22:49:44.8262690Z           ]
2026-06-10T22:49:44.8262767Z         },
2026-06-10T22:49:44.8262852Z         "int": {
2026-06-10T22:49:44.8262951Z           "complete": true,
2026-06-10T22:49:44.8263043Z           "evidence": [
2026-06-10T22:49:44.8263242Z             {
2026-06-10T22:49:44.8263377Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.8263471Z               "line": 706
2026-06-10T22:49:44.8263552Z             },
2026-06-10T22:49:44.8263644Z             {
2026-06-10T22:49:44.8263777Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-10T22:49:44.8263872Z               "line": 8
2026-06-10T22:49:44.8263964Z             },
2026-06-10T22:49:44.8264050Z             {
2026-06-10T22:49:44.8264182Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-10T22:49:44.8264279Z               "line": 49
2026-06-10T22:49:44.8264374Z             },
2026-06-10T22:49:44.8264463Z             {
2026-06-10T22:49:44.8264586Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8264682Z               "line": 708
2026-06-10T22:49:44.8264780Z             },
2026-06-10T22:49:44.8264865Z             {
2026-06-10T22:49:44.8264985Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8265099Z               "line": 1118
2026-06-10T22:49:44.8265189Z             },
2026-06-10T22:49:44.8265276Z             {
2026-06-10T22:49:44.8265405Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-10T22:49:44.8265494Z               "line": 17
2026-06-10T22:49:44.8265586Z             },
2026-06-10T22:49:44.8265671Z             {
2026-06-10T22:49:44.8265790Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-10T22:49:44.8265886Z               "line": 14
2026-06-10T22:49:44.8265972Z             }
2026-06-10T22:49:44.8266072Z           ]
2026-06-10T22:49:44.8266158Z         },
2026-06-10T22:49:44.8266249Z         "unit": {
2026-06-10T22:49:44.8266348Z           "complete": true,
2026-06-10T22:49:44.8266443Z           "evidence": [
2026-06-10T22:49:44.8266535Z             {
2026-06-10T22:49:44.8266658Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T22:49:44.8266754Z               "line": 234
2026-06-10T22:49:44.8266850Z             },
2026-06-10T22:49:44.8266945Z             {
2026-06-10T22:49:44.8267068Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T22:49:44.8267172Z               "line": 267
2026-06-10T22:49:44.8267262Z             },
2026-06-10T22:49:44.8267346Z             {
2026-06-10T22:49:44.8267470Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T22:49:44.8267561Z               "line": 307
2026-06-10T22:49:44.8267652Z             },
2026-06-10T22:49:44.8267742Z             {
2026-06-10T22:49:44.8267862Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8267962Z               "line": 519
2026-06-10T22:49:44.8268052Z             },
2026-06-10T22:49:44.8268143Z             {
2026-06-10T22:49:44.8268262Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8268357Z               "line": 592
2026-06-10T22:49:44.8268453Z             },
2026-06-10T22:49:44.8268538Z             {
2026-06-10T22:49:44.8268671Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8268763Z               "line": 736
2026-06-10T22:49:44.8268853Z             },
2026-06-10T22:49:44.8269034Z             {
2026-06-10T22:49:44.8269150Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.8269253Z               "line": 585
2026-06-10T22:49:44.8269349Z             },
2026-06-10T22:49:44.8269436Z             {
2026-06-10T22:49:44.8269558Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T22:49:44.8269654Z               "line": 352
2026-06-10T22:49:44.8269845Z             },
2026-06-10T22:49:44.8269935Z             {
2026-06-10T22:49:44.8270053Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8270145Z               "line": 5998
2026-06-10T22:49:44.8270235Z             },
2026-06-10T22:49:44.8270320Z             {
2026-06-10T22:49:44.8270431Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8270526Z               "line": 6320
2026-06-10T22:49:44.8270718Z             },
2026-06-10T22:49:44.8270808Z             {
2026-06-10T22:49:44.8270917Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8271012Z               "line": 6686
2026-06-10T22:49:44.8271103Z             }
2026-06-10T22:49:44.8271194Z           ]
2026-06-10T22:49:44.8271283Z         }
2026-06-10T22:49:44.8271371Z       }
2026-06-10T22:49:44.8271465Z     },
2026-06-10T22:49:44.8271556Z     {
2026-06-10T22:49:44.8271657Z       "id": "REQ-SHELL-2",
2026-06-10T22:49:44.8273178Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-10T22:49:44.8273308Z       "requiredStages": [
2026-06-10T22:49:44.8273403Z         "impl",
2026-06-10T22:49:44.8273492Z         "unit",
2026-06-10T22:49:44.8273585Z         "int"
2026-06-10T22:49:44.8273670Z       ],
2026-06-10T22:49:44.8273765Z       "stages": {
2026-06-10T22:49:44.8273860Z         "doc": {
2026-06-10T22:49:44.8273971Z           "complete": false,
2026-06-10T22:49:44.8274075Z           "evidence": []
2026-06-10T22:49:44.8274165Z         },
2026-06-10T22:49:44.8274257Z         "impl": {
2026-06-10T22:49:44.8274356Z           "complete": true,
2026-06-10T22:49:44.8274460Z           "evidence": [
2026-06-10T22:49:44.8274548Z             {
2026-06-10T22:49:44.8274685Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.8274785Z               "line": 214
2026-06-10T22:49:44.8274872Z             },
2026-06-10T22:49:44.8274967Z             {
2026-06-10T22:49:44.8275089Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.8275180Z               "line": 403
2026-06-10T22:49:44.8275265Z             },
2026-06-10T22:49:44.8275359Z             {
2026-06-10T22:49:44.8275488Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T22:49:44.8275579Z               "line": 250
2026-06-10T22:49:44.8275669Z             },
2026-06-10T22:49:44.8275745Z             {
2026-06-10T22:49:44.8275865Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.8275961Z               "line": 353
2026-06-10T22:49:44.8276045Z             },
2026-06-10T22:49:44.8276137Z             {
2026-06-10T22:49:44.8276255Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T22:49:44.8276350Z               "line": 30
2026-06-10T22:49:44.8276441Z             },
2026-06-10T22:49:44.8276528Z             {
2026-06-10T22:49:44.8276642Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T22:49:44.8276737Z               "line": 150
2026-06-10T22:49:44.8276829Z             },
2026-06-10T22:49:44.8276913Z             {
2026-06-10T22:49:44.8277042Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T22:49:44.8277124Z               "line": 186
2026-06-10T22:49:44.8277214Z             },
2026-06-10T22:49:44.8277309Z             {
2026-06-10T22:49:44.8277424Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T22:49:44.8277515Z               "line": 345
2026-06-10T22:49:44.8277608Z             },
2026-06-10T22:49:44.8277698Z             {
2026-06-10T22:49:44.8277814Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.8277911Z               "line": 348
2026-06-10T22:49:44.8278083Z             },
2026-06-10T22:49:44.8278160Z             {
2026-06-10T22:49:44.8278278Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T22:49:44.8278364Z               "line": 115
2026-06-10T22:49:44.8278450Z             },
2026-06-10T22:49:44.8278536Z             {
2026-06-10T22:49:44.8278654Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8278747Z               "line": 120
2026-06-10T22:49:44.8278902Z             },
2026-06-10T22:49:44.8279066Z             {
2026-06-10T22:49:44.8279185Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8279289Z               "line": 360
2026-06-10T22:49:44.8279381Z             },
2026-06-10T22:49:44.8279470Z             {
2026-06-10T22:49:44.8279594Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8279691Z               "line": 464
2026-06-10T22:49:44.8279785Z             },
2026-06-10T22:49:44.8279875Z             {
2026-06-10T22:49:44.8280006Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8280104Z               "line": 24
2026-06-10T22:49:44.8280190Z             },
2026-06-10T22:49:44.8280282Z             {
2026-06-10T22:49:44.8280396Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8280495Z               "line": 76
2026-06-10T22:49:44.8280580Z             },
2026-06-10T22:49:44.8280667Z             {
2026-06-10T22:49:44.8280785Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8280875Z               "line": 154
2026-06-10T22:49:44.8280967Z             },
2026-06-10T22:49:44.8281053Z             {
2026-06-10T22:49:44.8281162Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8281253Z               "line": 177
2026-06-10T22:49:44.8281353Z             },
2026-06-10T22:49:44.8281443Z             {
2026-06-10T22:49:44.8281554Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8281658Z               "line": 273
2026-06-10T22:49:44.8281744Z             },
2026-06-10T22:49:44.8281825Z             {
2026-06-10T22:49:44.8281945Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8282059Z               "line": 450
2026-06-10T22:49:44.8282149Z             },
2026-06-10T22:49:44.8282236Z             {
2026-06-10T22:49:44.8282359Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8282459Z               "line": 532
2026-06-10T22:49:44.8282551Z             },
2026-06-10T22:49:44.8282636Z             {
2026-06-10T22:49:44.8282768Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-10T22:49:44.8282863Z               "line": 27
2026-06-10T22:49:44.8282949Z             },
2026-06-10T22:49:44.8283043Z             {
2026-06-10T22:49:44.8283166Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-10T22:49:44.8283263Z               "line": 43
2026-06-10T22:49:44.8283348Z             },
2026-06-10T22:49:44.8283447Z             {
2026-06-10T22:49:44.8283572Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.8283667Z               "line": 323
2026-06-10T22:49:44.8283766Z             },
2026-06-10T22:49:44.8283853Z             {
2026-06-10T22:49:44.8283963Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8284062Z               "line": 1259
2026-06-10T22:49:44.8284154Z             },
2026-06-10T22:49:44.8284254Z             {
2026-06-10T22:49:44.8284358Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8284454Z               "line": 4577
2026-06-10T22:49:44.8284549Z             },
2026-06-10T22:49:44.8284640Z             {
2026-06-10T22:49:44.8284745Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8284841Z               "line": 4638
2026-06-10T22:49:44.8284930Z             },
2026-06-10T22:49:44.8285016Z             {
2026-06-10T22:49:44.8285123Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8285212Z               "line": 4666
2026-06-10T22:49:44.8285418Z             },
2026-06-10T22:49:44.8285504Z             {
2026-06-10T22:49:44.8285611Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8285706Z               "line": 4720
2026-06-10T22:49:44.8285797Z             },
2026-06-10T22:49:44.8285886Z             {
2026-06-10T22:49:44.8285990Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8286086Z               "line": 4836
2026-06-10T22:49:44.8286271Z             },
2026-06-10T22:49:44.8286357Z             {
2026-06-10T22:49:44.8286463Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8286563Z               "line": 4889
2026-06-10T22:49:44.8286653Z             },
2026-06-10T22:49:44.8286740Z             {
2026-06-10T22:49:44.8286854Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.8286953Z               "line": 298
2026-06-10T22:49:44.8287040Z             },
2026-06-10T22:49:44.8287130Z             {
2026-06-10T22:49:44.8287244Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.8287350Z               "line": 339
2026-06-10T22:49:44.8287436Z             }
2026-06-10T22:49:44.8287526Z           ]
2026-06-10T22:49:44.8287617Z         },
2026-06-10T22:49:44.8287708Z         "int": {
2026-06-10T22:49:44.8287807Z           "complete": true,
2026-06-10T22:49:44.8287898Z           "evidence": [
2026-06-10T22:49:44.8287994Z             {
2026-06-10T22:49:44.8288117Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.8288221Z               "line": 699
2026-06-10T22:49:44.8288312Z             },
2026-06-10T22:49:44.8288402Z             {
2026-06-10T22:49:44.8288523Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8288615Z               "line": 708
2026-06-10T22:49:44.8288710Z             },
2026-06-10T22:49:44.8288796Z             {
2026-06-10T22:49:44.8288924Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8289120Z               "line": 1118
2026-06-10T22:49:44.8289219Z             },
2026-06-10T22:49:44.8289321Z             {
2026-06-10T22:49:44.8289463Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-10T22:49:44.8289559Z               "line": 18
2026-06-10T22:49:44.8289650Z             }
2026-06-10T22:49:44.8289745Z           ]
2026-06-10T22:49:44.8289835Z         },
2026-06-10T22:49:44.8289922Z         "unit": {
2026-06-10T22:49:44.8290025Z           "complete": true,
2026-06-10T22:49:44.8290126Z           "evidence": [
2026-06-10T22:49:44.8290213Z             {
2026-06-10T22:49:44.8290336Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T22:49:44.8290431Z               "line": 429
2026-06-10T22:49:44.8290523Z             },
2026-06-10T22:49:44.8290609Z             {
2026-06-10T22:49:44.8290727Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T22:49:44.8290818Z               "line": 794
2026-06-10T22:49:44.8290914Z             },
2026-06-10T22:49:44.8290998Z             {
2026-06-10T22:49:44.8291130Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8291232Z               "line": 625
2026-06-10T22:49:44.8291318Z             },
2026-06-10T22:49:44.8291407Z             {
2026-06-10T22:49:44.8291527Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8291623Z               "line": 674
2026-06-10T22:49:44.8291712Z             },
2026-06-10T22:49:44.8291804Z             {
2026-06-10T22:49:44.8291937Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T22:49:44.8292032Z               "line": 698
2026-06-10T22:49:44.8292123Z             },
2026-06-10T22:49:44.8292209Z             {
2026-06-10T22:49:44.8292337Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8292433Z               "line": 596
2026-06-10T22:49:44.8292524Z             },
2026-06-10T22:49:44.8292619Z             {
2026-06-10T22:49:44.8292738Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8292943Z               "line": 617
2026-06-10T22:49:44.8293029Z             },
2026-06-10T22:49:44.8293126Z             {
2026-06-10T22:49:44.8293248Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8293342Z               "line": 653
2026-06-10T22:49:44.8293433Z             },
2026-06-10T22:49:44.8293518Z             {
2026-06-10T22:49:44.8293640Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8293851Z               "line": 707
2026-06-10T22:49:44.8293941Z             },
2026-06-10T22:49:44.8294032Z             {
2026-06-10T22:49:44.8294152Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8294251Z               "line": 725
2026-06-10T22:49:44.8294341Z             },
2026-06-10T22:49:44.8294428Z             {
2026-06-10T22:49:44.8294551Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8294646Z               "line": 759
2026-06-10T22:49:44.8294738Z             },
2026-06-10T22:49:44.8294833Z             {
2026-06-10T22:49:44.8294956Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T22:49:44.8295044Z               "line": 834
2026-06-10T22:49:44.8295133Z             },
2026-06-10T22:49:44.8295228Z             {
2026-06-10T22:49:44.8295359Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-10T22:49:44.8295452Z               "line": 80
2026-06-10T22:49:44.8295543Z             },
2026-06-10T22:49:44.8295644Z             {
2026-06-10T22:49:44.8295753Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8295853Z               "line": 5450
2026-06-10T22:49:44.8295940Z             },
2026-06-10T22:49:44.8296030Z             {
2026-06-10T22:49:44.8296144Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8296233Z               "line": 6075
2026-06-10T22:49:44.8296324Z             },
2026-06-10T22:49:44.8296413Z             {
2026-06-10T22:49:44.8296521Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8296617Z               "line": 6145
2026-06-10T22:49:44.8296709Z             },
2026-06-10T22:49:44.8296799Z             {
2026-06-10T22:49:44.8296903Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8297000Z               "line": 6183
2026-06-10T22:49:44.8297090Z             }
2026-06-10T22:49:44.8297184Z           ]
2026-06-10T22:49:44.8297276Z         }
2026-06-10T22:49:44.8297367Z       }
2026-06-10T22:49:44.8297456Z     },
2026-06-10T22:49:44.8299799Z     {
2026-06-10T22:49:44.8299933Z       "id": "REQ-START-1",
2026-06-10T22:49:44.8300139Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-10T22:49:44.8300252Z       "requiredStages": [
2026-06-10T22:49:44.8300343Z         "impl",
2026-06-10T22:49:44.8300443Z         "unit"
2026-06-10T22:49:44.8300539Z       ],
2026-06-10T22:49:44.8300634Z       "stages": {
2026-06-10T22:49:44.8300724Z         "doc": {
2026-06-10T22:49:44.8300825Z           "complete": false,
2026-06-10T22:49:44.8300929Z           "evidence": []
2026-06-10T22:49:44.8301029Z         },
2026-06-10T22:49:44.8301131Z         "impl": {
2026-06-10T22:49:44.8301230Z           "complete": true,
2026-06-10T22:49:44.8301325Z           "evidence": [
2026-06-10T22:49:44.8301412Z             {
2026-06-10T22:49:44.8301540Z               "path": "crates/spt-store/src/seed.rs",
2026-06-10T22:49:44.8301634Z               "line": 16
2026-06-10T22:49:44.8301729Z             }
2026-06-10T22:49:44.8301825Z           ]
2026-06-10T22:49:44.8301915Z         },
2026-06-10T22:49:44.8302001Z         "int": {
2026-06-10T22:49:44.8302107Z           "complete": false,
2026-06-10T22:49:44.8302202Z           "evidence": []
2026-06-10T22:49:44.8302301Z         },
2026-06-10T22:49:44.8302388Z         "unit": {
2026-06-10T22:49:44.8302488Z           "complete": true,
2026-06-10T22:49:44.8302582Z           "evidence": [
2026-06-10T22:49:44.8302674Z             {
2026-06-10T22:49:44.8302802Z               "path": "crates/spt-store/src/seed.rs",
2026-06-10T22:49:44.8303032Z               "line": 43
2026-06-10T22:49:44.8303122Z             },
2026-06-10T22:49:44.8303212Z             {
2026-06-10T22:49:44.8303328Z               "path": "crates/spt-store/src/seed.rs",
2026-06-10T22:49:44.8303427Z               "line": 59
2026-06-10T22:49:44.8303512Z             }
2026-06-10T22:49:44.8303603Z           ]
2026-06-10T22:49:44.8303686Z         }
2026-06-10T22:49:44.8303775Z       }
2026-06-10T22:49:44.8303865Z     },
2026-06-10T22:49:44.8304050Z     {
2026-06-10T22:49:44.8304158Z       "id": "REQ-START-2",
2026-06-10T22:49:44.8304305Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-10T22:49:44.8304407Z       "requiredStages": [
2026-06-10T22:49:44.8304501Z         "impl",
2026-06-10T22:49:44.8304592Z         "unit",
2026-06-10T22:49:44.8304678Z         "int"
2026-06-10T22:49:44.8304768Z       ],
2026-06-10T22:49:44.8304863Z       "stages": {
2026-06-10T22:49:44.8304950Z         "doc": {
2026-06-10T22:49:44.8305050Z           "complete": false,
2026-06-10T22:49:44.8305154Z           "evidence": []
2026-06-10T22:49:44.8305245Z         },
2026-06-10T22:49:44.8305336Z         "impl": {
2026-06-10T22:49:44.8305435Z           "complete": true,
2026-06-10T22:49:44.8305531Z           "evidence": [
2026-06-10T22:49:44.8305623Z             {
2026-06-10T22:49:44.8305746Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8305836Z               "line": 16
2026-06-10T22:49:44.8305928Z             },
2026-06-10T22:49:44.8306027Z             {
2026-06-10T22:49:44.8306141Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8306243Z               "line": 100
2026-06-10T22:49:44.8306332Z             },
2026-06-10T22:49:44.8306423Z             {
2026-06-10T22:49:44.8306538Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8306633Z               "line": 208
2026-06-10T22:49:44.8306718Z             }
2026-06-10T22:49:44.8306807Z           ]
2026-06-10T22:49:44.8306899Z         },
2026-06-10T22:49:44.8306987Z         "int": {
2026-06-10T22:49:44.8307096Z           "complete": true,
2026-06-10T22:49:44.8307192Z           "evidence": [
2026-06-10T22:49:44.8307283Z             {
2026-06-10T22:49:44.8307406Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T22:49:44.8307502Z               "line": 186
2026-06-10T22:49:44.8307602Z             }
2026-06-10T22:49:44.8307692Z           ]
2026-06-10T22:49:44.8307783Z         },
2026-06-10T22:49:44.8307884Z         "unit": {
2026-06-10T22:49:44.8307984Z           "complete": true,
2026-06-10T22:49:44.8308078Z           "evidence": [
2026-06-10T22:49:44.8308170Z             {
2026-06-10T22:49:44.8308284Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8308383Z               "line": 421
2026-06-10T22:49:44.8308471Z             },
2026-06-10T22:49:44.8308556Z             {
2026-06-10T22:49:44.8308675Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8308771Z               "line": 454
2026-06-10T22:49:44.8308871Z             }
2026-06-10T22:49:44.8309052Z           ]
2026-06-10T22:49:44.8309143Z         }
2026-06-10T22:49:44.8309233Z       }
2026-06-10T22:49:44.8309322Z     },
2026-06-10T22:49:44.8309417Z     {
2026-06-10T22:49:44.8309512Z       "id": "REQ-START-3",
2026-06-10T22:49:44.8309691Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-10T22:49:44.8309792Z       "requiredStages": [
2026-06-10T22:49:44.8309893Z         "impl",
2026-06-10T22:49:44.8309982Z         "unit",
2026-06-10T22:49:44.8310069Z         "int"
2026-06-10T22:49:44.8310160Z       ],
2026-06-10T22:49:44.8310250Z       "stages": {
2026-06-10T22:49:44.8310340Z         "doc": {
2026-06-10T22:49:44.8310441Z           "complete": false,
2026-06-10T22:49:44.8310536Z           "evidence": []
2026-06-10T22:49:44.8310626Z         },
2026-06-10T22:49:44.8310718Z         "impl": {
2026-06-10T22:49:44.8310822Z           "complete": true,
2026-06-10T22:49:44.8310912Z           "evidence": [
2026-06-10T22:49:44.8311008Z             {
2026-06-10T22:49:44.8311241Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T22:49:44.8311338Z               "line": 23
2026-06-10T22:49:44.8311428Z             },
2026-06-10T22:49:44.8311518Z             {
2026-06-10T22:49:44.8311638Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T22:49:44.8311738Z               "line": 205
2026-06-10T22:49:44.8311827Z             },
2026-06-10T22:49:44.8312010Z             {
2026-06-10T22:49:44.8312128Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T22:49:44.8312218Z               "line": 221
2026-06-10T22:49:44.8312299Z             },
2026-06-10T22:49:44.8312395Z             {
2026-06-10T22:49:44.8312508Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8312604Z               "line": 17
2026-06-10T22:49:44.8312691Z             },
2026-06-10T22:49:44.8312772Z             {
2026-06-10T22:49:44.8312885Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8312987Z               "line": 43
2026-06-10T22:49:44.8313082Z             },
2026-06-10T22:49:44.8313161Z             {
2026-06-10T22:49:44.8313287Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8313381Z               "line": 101
2026-06-10T22:49:44.8313458Z             }
2026-06-10T22:49:44.8313553Z           ]
2026-06-10T22:49:44.8313631Z         },
2026-06-10T22:49:44.8313720Z         "int": {
2026-06-10T22:49:44.8313815Z           "complete": true,
2026-06-10T22:49:44.8313912Z           "evidence": [
2026-06-10T22:49:44.8314002Z             {
2026-06-10T22:49:44.8314115Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T22:49:44.8314207Z               "line": 440
2026-06-10T22:49:44.8314284Z             }
2026-06-10T22:49:44.8314377Z           ]
2026-06-10T22:49:44.8314458Z         },
2026-06-10T22:49:44.8314544Z         "unit": {
2026-06-10T22:49:44.8314639Z           "complete": true,
2026-06-10T22:49:44.8314732Z           "evidence": [
2026-06-10T22:49:44.8314827Z             {
2026-06-10T22:49:44.8314943Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T22:49:44.8315037Z               "line": 331
2026-06-10T22:49:44.8315118Z             },
2026-06-10T22:49:44.8315204Z             {
2026-06-10T22:49:44.8315324Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T22:49:44.8315414Z               "line": 352
2026-06-10T22:49:44.8315505Z             },
2026-06-10T22:49:44.8315600Z             {
2026-06-10T22:49:44.8315719Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T22:49:44.8315811Z               "line": 362
2026-06-10T22:49:44.8315901Z             },
2026-06-10T22:49:44.8315987Z             {
2026-06-10T22:49:44.8316100Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8316202Z               "line": 422
2026-06-10T22:49:44.8316282Z             },
2026-06-10T22:49:44.8316363Z             {
2026-06-10T22:49:44.8316483Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8316577Z               "line": 455
2026-06-10T22:49:44.8316663Z             },
2026-06-10T22:49:44.8316745Z             {
2026-06-10T22:49:44.8316855Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T22:49:44.8316949Z               "line": 463
2026-06-10T22:49:44.8317026Z             }
2026-06-10T22:49:44.8317118Z           ]
2026-06-10T22:49:44.8317202Z         }
2026-06-10T22:49:44.8317292Z       }
2026-06-10T22:49:44.8317382Z     },
2026-06-10T22:49:44.8317464Z     {
2026-06-10T22:49:44.8317561Z       "id": "REQ-START-4",
2026-06-10T22:49:44.8317704Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-10T22:49:44.8317810Z       "requiredStages": [
2026-06-10T22:49:44.8317904Z         "impl",
2026-06-10T22:49:44.8317999Z         "unit"
2026-06-10T22:49:44.8318072Z       ],
2026-06-10T22:49:44.8318167Z       "stages": {
2026-06-10T22:49:44.8318243Z         "doc": {
2026-06-10T22:49:44.8318348Z           "complete": false,
2026-06-10T22:49:44.8318439Z           "evidence": []
2026-06-10T22:49:44.8318605Z         },
2026-06-10T22:49:44.8318701Z         "impl": {
2026-06-10T22:49:44.8318787Z           "complete": true,
2026-06-10T22:49:44.8318882Z           "evidence": [
2026-06-10T22:49:44.8319041Z             {
2026-06-10T22:49:44.8319159Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.8319254Z               "line": 391
2026-06-10T22:49:44.8319336Z             }
2026-06-10T22:49:44.8319521Z           ]
2026-06-10T22:49:44.8319602Z         },
2026-06-10T22:49:44.8319694Z         "int": {
2026-06-10T22:49:44.8319793Z           "complete": false,
2026-06-10T22:49:44.8319887Z           "evidence": []
2026-06-10T22:49:44.8319968Z         },
2026-06-10T22:49:44.8320049Z         "unit": {
2026-06-10T22:49:44.8320152Z           "complete": true,
2026-06-10T22:49:44.8320242Z           "evidence": [
2026-06-10T22:49:44.8320333Z             {
2026-06-10T22:49:44.8320448Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T22:49:44.8320547Z               "line": 660
2026-06-10T22:49:44.8320629Z             }
2026-06-10T22:49:44.8320711Z           ]
2026-06-10T22:49:44.8320791Z         }
2026-06-10T22:49:44.8320871Z       }
2026-06-10T22:49:44.8320959Z     },
2026-06-10T22:49:44.8321044Z     {
2026-06-10T22:49:44.8321143Z       "id": "REQ-STORE-1",
2026-06-10T22:49:44.8321965Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-10T22:49:44.8322059Z       "requiredStages": [
2026-06-10T22:49:44.8322154Z         "impl",
2026-06-10T22:49:44.8322242Z         "unit"
2026-06-10T22:49:44.8322326Z       ],
2026-06-10T22:49:44.8322412Z       "stages": {
2026-06-10T22:49:44.8322508Z         "doc": {
2026-06-10T22:49:44.8322599Z           "complete": false,
2026-06-10T22:49:44.8322697Z           "evidence": []
2026-06-10T22:49:44.8322792Z         },
2026-06-10T22:49:44.8322879Z         "impl": {
2026-06-10T22:49:44.8322970Z           "complete": true,
2026-06-10T22:49:44.8323069Z           "evidence": [
2026-06-10T22:49:44.8323159Z             {
2026-06-10T22:49:44.8323289Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8323384Z               "line": 23
2026-06-10T22:49:44.8323479Z             },
2026-06-10T22:49:44.8323556Z             {
2026-06-10T22:49:44.8323689Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8323784Z               "line": 46
2026-06-10T22:49:44.8323876Z             },
2026-06-10T22:49:44.8323965Z             {
2026-06-10T22:49:44.8324080Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8324171Z               "line": 97
2026-06-10T22:49:44.8324261Z             },
2026-06-10T22:49:44.8324352Z             {
2026-06-10T22:49:44.8324463Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8324558Z               "line": 125
2026-06-10T22:49:44.8324642Z             },
2026-06-10T22:49:44.8324729Z             {
2026-06-10T22:49:44.8324844Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8324942Z               "line": 181
2026-06-10T22:49:44.8325032Z             },
2026-06-10T22:49:44.8325118Z             {
2026-06-10T22:49:44.8325246Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8325340Z               "line": 205
2026-06-10T22:49:44.8325435Z             },
2026-06-10T22:49:44.8325537Z             {
2026-06-10T22:49:44.8325654Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8325755Z               "line": 441
2026-06-10T22:49:44.8325832Z             },
2026-06-10T22:49:44.8325908Z             {
2026-06-10T22:49:44.8326031Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.8326123Z               "line": 25
2026-06-10T22:49:44.8326332Z             },
2026-06-10T22:49:44.8326414Z             {
2026-06-10T22:49:44.8326542Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.8326637Z               "line": 104
2026-06-10T22:49:44.8326728Z             },
2026-06-10T22:49:44.8326813Z             {
2026-06-10T22:49:44.8326937Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.8327096Z               "line": 132
2026-06-10T22:49:44.8327185Z             },
2026-06-10T22:49:44.8327281Z             {
2026-06-10T22:49:44.8327401Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.8327490Z               "line": 148
2026-06-10T22:49:44.8327572Z             },
2026-06-10T22:49:44.8327659Z             {
2026-06-10T22:49:44.8327777Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.8327871Z               "line": 166
2026-06-10T22:49:44.8327957Z             },
2026-06-10T22:49:44.8328043Z             {
2026-06-10T22:49:44.8328174Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.8328264Z               "line": 175
2026-06-10T22:49:44.8328351Z             },
2026-06-10T22:49:44.8328441Z             {
2026-06-10T22:49:44.8328555Z               "path": "crates/spt-store/src/project.rs",
2026-06-10T22:49:44.8328647Z               "line": 16
2026-06-10T22:49:44.8328737Z             },
2026-06-10T22:49:44.8328817Z             {
2026-06-10T22:49:44.8328932Z               "path": "crates/spt-store/src/project.rs",
2026-06-10T22:49:44.8329099Z               "line": 63
2026-06-10T22:49:44.8329184Z             }
2026-06-10T22:49:44.8329266Z           ]
2026-06-10T22:49:44.8329356Z         },
2026-06-10T22:49:44.8329442Z         "int": {
2026-06-10T22:49:44.8329537Z           "complete": false,
2026-06-10T22:49:44.8329634Z           "evidence": []
2026-06-10T22:49:44.8329709Z         },
2026-06-10T22:49:44.8329804Z         "unit": {
2026-06-10T22:49:44.8329896Z           "complete": true,
2026-06-10T22:49:44.8329991Z           "evidence": [
2026-06-10T22:49:44.8330076Z             {
2026-06-10T22:49:44.8330197Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8330287Z               "line": 558
2026-06-10T22:49:44.8330376Z             },
2026-06-10T22:49:44.8330466Z             {
2026-06-10T22:49:44.8330591Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8330688Z               "line": 568
2026-06-10T22:49:44.8330778Z             },
2026-06-10T22:49:44.8330855Z             {
2026-06-10T22:49:44.8330985Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8331079Z               "line": 590
2026-06-10T22:49:44.8331170Z             },
2026-06-10T22:49:44.8331261Z             {
2026-06-10T22:49:44.8331379Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8331475Z               "line": 606
2026-06-10T22:49:44.8331561Z             },
2026-06-10T22:49:44.8331651Z             {
2026-06-10T22:49:44.8331770Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T22:49:44.8331867Z               "line": 629
2026-06-10T22:49:44.8331961Z             },
2026-06-10T22:49:44.8332047Z             {
2026-06-10T22:49:44.8332168Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.8332262Z               "line": 440
2026-06-10T22:49:44.8332352Z             },
2026-06-10T22:49:44.8332453Z             {
2026-06-10T22:49:44.8332567Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T22:49:44.8332662Z               "line": 475
2026-06-10T22:49:44.8332749Z             },
2026-06-10T22:49:44.8332844Z             {
2026-06-10T22:49:44.8332962Z               "path": "crates/spt-store/src/project.rs",
2026-06-10T22:49:44.8333059Z               "line": 120
2026-06-10T22:49:44.8333154Z             },
2026-06-10T22:49:44.8333243Z             {
2026-06-10T22:49:44.8333366Z               "path": "crates/spt-store/src/project.rs",
2026-06-10T22:49:44.8333563Z               "line": 128
2026-06-10T22:49:44.8333652Z             }
2026-06-10T22:49:44.8333739Z           ]
2026-06-10T22:49:44.8333826Z         }
2026-06-10T22:49:44.8333920Z       }
2026-06-10T22:49:44.8334000Z     },
2026-06-10T22:49:44.8334088Z     {
2026-06-10T22:49:44.8334178Z       "id": "REQ-SUBNET-1",
2026-06-10T22:49:44.8334488Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-10T22:49:44.8334659Z       "requiredStages": [
2026-06-10T22:49:44.8334755Z         "impl",
2026-06-10T22:49:44.8334840Z         "unit"
2026-06-10T22:49:44.8334926Z       ],
2026-06-10T22:49:44.8335018Z       "stages": {
2026-06-10T22:49:44.8335103Z         "doc": {
2026-06-10T22:49:44.8335202Z           "complete": false,
2026-06-10T22:49:44.8335298Z           "evidence": []
2026-06-10T22:49:44.8335409Z         },
2026-06-10T22:49:44.8335498Z         "impl": {
2026-06-10T22:49:44.8335598Z           "complete": true,
2026-06-10T22:49:44.8335697Z           "evidence": [
2026-06-10T22:49:44.8335787Z             {
2026-06-10T22:49:44.8335919Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8336010Z               "line": 265
2026-06-10T22:49:44.8336107Z             },
2026-06-10T22:49:44.8336195Z             {
2026-06-10T22:49:44.8336320Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8336435Z               "line": 571
2026-06-10T22:49:44.8336524Z             },
2026-06-10T22:49:44.8336621Z             {
2026-06-10T22:49:44.8336730Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8336825Z               "line": 2473
2026-06-10T22:49:44.8336916Z             },
2026-06-10T22:49:44.8337012Z             {
2026-06-10T22:49:44.8337121Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8337212Z               "line": 2638
2026-06-10T22:49:44.8337308Z             },
2026-06-10T22:49:44.8337392Z             {
2026-06-10T22:49:44.8337512Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8337608Z               "line": 2657
2026-06-10T22:49:44.8337698Z             },
2026-06-10T22:49:44.8337788Z             {
2026-06-10T22:49:44.8337890Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8337985Z               "line": 2718
2026-06-10T22:49:44.8338074Z             },
2026-06-10T22:49:44.8338166Z             {
2026-06-10T22:49:44.8338281Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8338379Z               "line": 2760
2026-06-10T22:49:44.8338474Z             },
2026-06-10T22:49:44.8338560Z             {
2026-06-10T22:49:44.8338668Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8338757Z               "line": 2933
2026-06-10T22:49:44.8338849Z             },
2026-06-10T22:49:44.8339034Z             {
2026-06-10T22:49:44.8339139Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8339241Z               "line": 3003
2026-06-10T22:49:44.8339335Z             },
2026-06-10T22:49:44.8339425Z             {
2026-06-10T22:49:44.8339531Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8339626Z               "line": 3227
2026-06-10T22:49:44.8339720Z             },
2026-06-10T22:49:44.8339807Z             {
2026-06-10T22:49:44.8339926Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.8340021Z               "line": 418
2026-06-10T22:49:44.8340117Z             }
2026-06-10T22:49:44.8340213Z           ]
2026-06-10T22:49:44.8340297Z         },
2026-06-10T22:49:44.8340394Z         "int": {
2026-06-10T22:49:44.8340495Z           "complete": false,
2026-06-10T22:49:44.8340593Z           "evidence": []
2026-06-10T22:49:44.8340679Z         },
2026-06-10T22:49:44.8340776Z         "unit": {
2026-06-10T22:49:44.8340871Z           "complete": true,
2026-06-10T22:49:44.8340969Z           "evidence": [
2026-06-10T22:49:44.8341059Z             {
2026-06-10T22:49:44.8341184Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8341396Z               "line": 1446
2026-06-10T22:49:44.8341487Z             },
2026-06-10T22:49:44.8341582Z             {
2026-06-10T22:49:44.8341691Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8341783Z               "line": 6932
2026-06-10T22:49:44.8341878Z             },
2026-06-10T22:49:44.8341968Z             {
2026-06-10T22:49:44.8342079Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8342268Z               "line": 7102
2026-06-10T22:49:44.8342360Z             },
2026-06-10T22:49:44.8342460Z             {
2026-06-10T22:49:44.8342564Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8342659Z               "line": 7109
2026-06-10T22:49:44.8342756Z             },
2026-06-10T22:49:44.8342851Z             {
2026-06-10T22:49:44.8342955Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8343052Z               "line": 7162
2026-06-10T22:49:44.8343141Z             },
2026-06-10T22:49:44.8343227Z             {
2026-06-10T22:49:44.8343338Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8343428Z               "line": 7179
2026-06-10T22:49:44.8343518Z             },
2026-06-10T22:49:44.8343604Z             {
2026-06-10T22:49:44.8343710Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8343803Z               "line": 7193
2026-06-10T22:49:44.8343893Z             },
2026-06-10T22:49:44.8343979Z             {
2026-06-10T22:49:44.8344090Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8344184Z               "line": 7291
2026-06-10T22:49:44.8344270Z             },
2026-06-10T22:49:44.8344362Z             {
2026-06-10T22:49:44.8344475Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8344565Z               "line": 7441
2026-06-10T22:49:44.8344657Z             }
2026-06-10T22:49:44.8344743Z           ]
2026-06-10T22:49:44.8344833Z         }
2026-06-10T22:49:44.8344924Z       }
2026-06-10T22:49:44.8345010Z     },
2026-06-10T22:49:44.8345095Z     {
2026-06-10T22:49:44.8345195Z       "id": "REQ-SUBNET-2",
2026-06-10T22:49:44.8345439Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-10T22:49:44.8345544Z       "requiredStages": [
2026-06-10T22:49:44.8345640Z         "impl",
2026-06-10T22:49:44.8345734Z         "unit",
2026-06-10T22:49:44.8345825Z         "int"
2026-06-10T22:49:44.8345912Z       ],
2026-06-10T22:49:44.8346002Z       "stages": {
2026-06-10T22:49:44.8346110Z         "doc": {
2026-06-10T22:49:44.8346205Z           "complete": true,
2026-06-10T22:49:44.8346300Z           "evidence": [
2026-06-10T22:49:44.8346384Z             {
2026-06-10T22:49:44.8346537Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-10T22:49:44.8346657Z               "line": 60
2026-06-10T22:49:44.8346742Z             }
2026-06-10T22:49:44.8346837Z           ]
2026-06-10T22:49:44.8346924Z         },
2026-06-10T22:49:44.8347018Z         "impl": {
2026-06-10T22:49:44.8347108Z           "complete": true,
2026-06-10T22:49:44.8347205Z           "evidence": [
2026-06-10T22:49:44.8347300Z             {
2026-06-10T22:49:44.8347413Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.8347506Z               "line": 665
2026-06-10T22:49:44.8347581Z             },
2026-06-10T22:49:44.8347681Z             {
2026-06-10T22:49:44.8347795Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.8347892Z               "line": 801
2026-06-10T22:49:44.8347982Z             },
2026-06-10T22:49:44.8348072Z             {
2026-06-10T22:49:44.8348187Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.8348286Z               "line": 448
2026-06-10T22:49:44.8348377Z             },
2026-06-10T22:49:44.8348469Z             {
2026-06-10T22:49:44.8348587Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T22:49:44.8348678Z               "line": 578
2026-06-10T22:49:44.8348764Z             },
2026-06-10T22:49:44.8348855Z             {
2026-06-10T22:49:44.8349134Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.8349233Z               "line": 26
2026-06-10T22:49:44.8349322Z             },
2026-06-10T22:49:44.8349414Z             {
2026-06-10T22:49:44.8349528Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.8349623Z               "line": 60
2026-06-10T22:49:44.8349718Z             },
2026-06-10T22:49:44.8349896Z             {
2026-06-10T22:49:44.8350019Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.8350110Z               "line": 168
2026-06-10T22:49:44.8350201Z             },
2026-06-10T22:49:44.8350285Z             {
2026-06-10T22:49:44.8350392Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.8350487Z               "line": 295
2026-06-10T22:49:44.8350577Z             },
2026-06-10T22:49:44.8350667Z             {
2026-06-10T22:49:44.8350783Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.8350872Z               "line": 417
2026-06-10T22:49:44.8350968Z             },
2026-06-10T22:49:44.8351045Z             {
2026-06-10T22:49:44.8351182Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T22:49:44.8351273Z               "line": 252
2026-06-10T22:49:44.8351355Z             },
2026-06-10T22:49:44.8351436Z             {
2026-06-10T22:49:44.8351544Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8351649Z               "line": 2684
2026-06-10T22:49:44.8351744Z             },
2026-06-10T22:49:44.8351832Z             {
2026-06-10T22:49:44.8351927Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8352023Z               "line": 3166
2026-06-10T22:49:44.8352105Z             },
2026-06-10T22:49:44.8352185Z             {
2026-06-10T22:49:44.8352290Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8352381Z               "line": 3789
2026-06-10T22:49:44.8352471Z             }
2026-06-10T22:49:44.8352547Z           ]
2026-06-10T22:49:44.8352644Z         },
2026-06-10T22:49:44.8352738Z         "int": {
2026-06-10T22:49:44.8352828Z           "complete": true,
2026-06-10T22:49:44.8352930Z           "evidence": [
2026-06-10T22:49:44.8353006Z             {
2026-06-10T22:49:44.8353138Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-10T22:49:44.8353229Z               "line": 22
2026-06-10T22:49:44.8353321Z             },
2026-06-10T22:49:44.8353406Z             {
2026-06-10T22:49:44.8353539Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8353636Z               "line": 575
2026-06-10T22:49:44.8353720Z             },
2026-06-10T22:49:44.8353801Z             {
2026-06-10T22:49:44.8353917Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8354011Z               "line": 792
2026-06-10T22:49:44.8354102Z             }
2026-06-10T22:49:44.8354179Z           ]
2026-06-10T22:49:44.8354270Z         },
2026-06-10T22:49:44.8354349Z         "unit": {
2026-06-10T22:49:44.8354454Z           "complete": true,
2026-06-10T22:49:44.8354539Z           "evidence": [
2026-06-10T22:49:44.8354636Z             {
2026-06-10T22:49:44.8354759Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.8354850Z               "line": 586
2026-06-10T22:49:44.8354936Z             },
2026-06-10T22:49:44.8355017Z             {
2026-06-10T22:49:44.8355121Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8355223Z               "line": 6972
2026-06-10T22:49:44.8355313Z             },
2026-06-10T22:49:44.8355412Z             {
2026-06-10T22:49:44.8355528Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8355622Z               "line": 7645
2026-06-10T22:49:44.8355703Z             }
2026-06-10T22:49:44.8355794Z           ]
2026-06-10T22:49:44.8355880Z         }
2026-06-10T22:49:44.8355970Z       }
2026-06-10T22:49:44.8356051Z     },
2026-06-10T22:49:44.8356138Z     {
2026-06-10T22:49:44.8356238Z       "id": "REQ-SUBNET-3",
2026-06-10T22:49:44.8356633Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-10T22:49:44.8356732Z       "requiredStages": [
2026-06-10T22:49:44.8356827Z         "impl",
2026-06-10T22:49:44.8356916Z         "unit"
2026-06-10T22:49:44.8357011Z       ],
2026-06-10T22:49:44.8357102Z       "stages": {
2026-06-10T22:49:44.8357188Z         "doc": {
2026-06-10T22:49:44.8357288Z           "complete": false,
2026-06-10T22:49:44.8357460Z           "evidence": []
2026-06-10T22:49:44.8357541Z         },
2026-06-10T22:49:44.8357636Z         "impl": {
2026-06-10T22:49:44.8357726Z           "complete": true,
2026-06-10T22:49:44.8357813Z           "evidence": [
2026-06-10T22:49:44.8357907Z             {
2026-06-10T22:49:44.8358041Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8358132Z               "line": 152
2026-06-10T22:49:44.8358218Z             },
2026-06-10T22:49:44.8358307Z             {
2026-06-10T22:49:44.8358437Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8358542Z               "line": 283
2026-06-10T22:49:44.8358627Z             },
2026-06-10T22:49:44.8358710Z             {
2026-06-10T22:49:44.8358833Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8358918Z               "line": 413
2026-06-10T22:49:44.8359105Z             },
2026-06-10T22:49:44.8359190Z             {
2026-06-10T22:49:44.8359320Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8359420Z               "line": 452
2026-06-10T22:49:44.8359500Z             },
2026-06-10T22:49:44.8359584Z             {
2026-06-10T22:49:44.8359704Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8359788Z               "line": 125
2026-06-10T22:49:44.8359882Z             },
2026-06-10T22:49:44.8359964Z             {
2026-06-10T22:49:44.8360088Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8360183Z               "line": 237
2026-06-10T22:49:44.8360278Z             },
2026-06-10T22:49:44.8360356Z             {
2026-06-10T22:49:44.8360479Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8360574Z               "line": 248
2026-06-10T22:49:44.8360661Z             },
2026-06-10T22:49:44.8360751Z             {
2026-06-10T22:49:44.8360864Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8360966Z               "line": 269
2026-06-10T22:49:44.8361056Z             },
2026-06-10T22:49:44.8361137Z             {
2026-06-10T22:49:44.8361262Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8361357Z               "line": 573
2026-06-10T22:49:44.8361452Z             },
2026-06-10T22:49:44.8361543Z             {
2026-06-10T22:49:44.8361658Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8361756Z               "line": 632
2026-06-10T22:49:44.8361848Z             },
2026-06-10T22:49:44.8361934Z             {
2026-06-10T22:49:44.8362071Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T22:49:44.8362166Z               "line": 61
2026-06-10T22:49:44.8362256Z             },
2026-06-10T22:49:44.8362346Z             {
2026-06-10T22:49:44.8362464Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T22:49:44.8362550Z               "line": 90
2026-06-10T22:49:44.8362646Z             },
2026-06-10T22:49:44.8362754Z             {
2026-06-10T22:49:44.8362879Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T22:49:44.8362974Z               "line": 125
2026-06-10T22:49:44.8363074Z             },
2026-06-10T22:49:44.8363165Z             {
2026-06-10T22:49:44.8363289Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-10T22:49:44.8363384Z               "line": 9
2026-06-10T22:49:44.8363480Z             },
2026-06-10T22:49:44.8363571Z             {
2026-06-10T22:49:44.8363680Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8363881Z               "line": 3003
2026-06-10T22:49:44.8363976Z             },
2026-06-10T22:49:44.8364066Z             {
2026-06-10T22:49:44.8364186Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.8364285Z               "line": 445
2026-06-10T22:49:44.8364376Z             }
2026-06-10T22:49:44.8364468Z           ]
2026-06-10T22:49:44.8364553Z         },
2026-06-10T22:49:44.8364648Z         "int": {
2026-06-10T22:49:44.8364840Z           "complete": false,
2026-06-10T22:49:44.8364938Z           "evidence": []
2026-06-10T22:49:44.8365028Z         },
2026-06-10T22:49:44.8365119Z         "unit": {
2026-06-10T22:49:44.8365216Z           "complete": true,
2026-06-10T22:49:44.8365314Z           "evidence": [
2026-06-10T22:49:44.8365410Z             {
2026-06-10T22:49:44.8365544Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8365648Z               "line": 1273
2026-06-10T22:49:44.8365734Z             },
2026-06-10T22:49:44.8365829Z             {
2026-06-10T22:49:44.8365962Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8368115Z               "line": 1575
2026-06-10T22:49:44.8368210Z             },
2026-06-10T22:49:44.8368296Z             {
2026-06-10T22:49:44.8368439Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.8368534Z               "line": 885
2026-06-10T22:49:44.8368626Z             },
2026-06-10T22:49:44.8368721Z             {
2026-06-10T22:49:44.8368858Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8369035Z               "line": 941
2026-06-10T22:49:44.8369125Z             },
2026-06-10T22:49:44.8369216Z             {
2026-06-10T22:49:44.8369345Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8369445Z               "line": 990
2026-06-10T22:49:44.8369541Z             },
2026-06-10T22:49:44.8369627Z             {
2026-06-10T22:49:44.8369750Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8369846Z               "line": 1049
2026-06-10T22:49:44.8369938Z             },
2026-06-10T22:49:44.8370022Z             {
2026-06-10T22:49:44.8370149Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T22:49:44.8370250Z               "line": 233
2026-06-10T22:49:44.8370334Z             },
2026-06-10T22:49:44.8370424Z             {
2026-06-10T22:49:44.8370548Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-10T22:49:44.8370649Z               "line": 49
2026-06-10T22:49:44.8370743Z             },
2026-06-10T22:49:44.8370839Z             {
2026-06-10T22:49:44.8370954Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8371044Z               "line": 7291
2026-06-10T22:49:44.8371134Z             },
2026-06-10T22:49:44.8371221Z             {
2026-06-10T22:49:44.8371331Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8371425Z               "line": 7396
2026-06-10T22:49:44.8371517Z             },
2026-06-10T22:49:44.8371611Z             {
2026-06-10T22:49:44.8371721Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8371812Z               "line": 7611
2026-06-10T22:49:44.8371903Z             }
2026-06-10T22:49:44.8371992Z           ]
2026-06-10T22:49:44.8372078Z         }
2026-06-10T22:49:44.8372166Z       }
2026-06-10T22:49:44.8372255Z     },
2026-06-10T22:49:44.8372341Z     {
2026-06-10T22:49:44.8372442Z       "id": "REQ-SUBNET-4",
2026-06-10T22:49:44.8372735Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-10T22:49:44.8372840Z       "requiredStages": [
2026-06-10T22:49:44.8372934Z         "impl",
2026-06-10T22:49:44.8373014Z         "unit"
2026-06-10T22:49:44.8373101Z       ],
2026-06-10T22:49:44.8373182Z       "stages": {
2026-06-10T22:49:44.8373268Z         "doc": {
2026-06-10T22:49:44.8373357Z           "complete": true,
2026-06-10T22:49:44.8373449Z           "evidence": [
2026-06-10T22:49:44.8373534Z             {
2026-06-10T22:49:44.8373826Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-10T22:49:44.8373921Z               "line": 60
2026-06-10T22:49:44.8374011Z             }
2026-06-10T22:49:44.8374098Z           ]
2026-06-10T22:49:44.8374183Z         },
2026-06-10T22:49:44.8374278Z         "impl": {
2026-06-10T22:49:44.8374369Z           "complete": true,
2026-06-10T22:49:44.8374465Z           "evidence": [
2026-06-10T22:49:44.8374555Z             {
2026-06-10T22:49:44.8374751Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8374845Z               "line": 2473
2026-06-10T22:49:44.8374936Z             },
2026-06-10T22:49:44.8375028Z             {
2026-06-10T22:49:44.8375127Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8375218Z               "line": 3756
2026-06-10T22:49:44.8375319Z             },
2026-06-10T22:49:44.8375410Z             {
2026-06-10T22:49:44.8375512Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8375602Z               "line": 3789
2026-06-10T22:49:44.8375698Z             }
2026-06-10T22:49:44.8375785Z           ]
2026-06-10T22:49:44.8375874Z         },
2026-06-10T22:49:44.8375965Z         "int": {
2026-06-10T22:49:44.8376066Z           "complete": false,
2026-06-10T22:49:44.8376165Z           "evidence": []
2026-06-10T22:49:44.8376251Z         },
2026-06-10T22:49:44.8376352Z         "unit": {
2026-06-10T22:49:44.8376443Z           "complete": true,
2026-06-10T22:49:44.8376546Z           "evidence": [
2026-06-10T22:49:44.8376633Z             {
2026-06-10T22:49:44.8376738Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8376832Z               "line": 7088
2026-06-10T22:49:44.8376919Z             },
2026-06-10T22:49:44.8377010Z             {
2026-06-10T22:49:44.8377115Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8377210Z               "line": 7162
2026-06-10T22:49:44.8377306Z             }
2026-06-10T22:49:44.8377395Z           ]
2026-06-10T22:49:44.8377481Z         }
2026-06-10T22:49:44.8377573Z       }
2026-06-10T22:49:44.8377664Z     },
2026-06-10T22:49:44.8377748Z     {
2026-06-10T22:49:44.8377852Z       "id": "REQ-SUBNET-5",
2026-06-10T22:49:44.8379118Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-10T22:49:44.8379248Z       "requiredStages": [
2026-06-10T22:49:44.8379338Z         "impl",
2026-06-10T22:49:44.8379428Z         "unit",
2026-06-10T22:49:44.8379515Z         "int"
2026-06-10T22:49:44.8379604Z       ],
2026-06-10T22:49:44.8379695Z       "stages": {
2026-06-10T22:49:44.8379796Z         "doc": {
2026-06-10T22:49:44.8379896Z           "complete": false,
2026-06-10T22:49:44.8379991Z           "evidence": []
2026-06-10T22:49:44.8380077Z         },
2026-06-10T22:49:44.8380174Z         "impl": {
2026-06-10T22:49:44.8380272Z           "complete": true,
2026-06-10T22:49:44.8380363Z           "evidence": [
2026-06-10T22:49:44.8380454Z             {
2026-06-10T22:49:44.8380582Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T22:49:44.8380677Z               "line": 126
2026-06-10T22:49:44.8380762Z             },
2026-06-10T22:49:44.8380857Z             {
2026-06-10T22:49:44.8380998Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T22:49:44.8381094Z               "line": 413
2026-06-10T22:49:44.8381180Z             },
2026-06-10T22:49:44.8381265Z             {
2026-06-10T22:49:44.8381389Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.8381485Z               "line": 74
2026-06-10T22:49:44.8381576Z             },
2026-06-10T22:49:44.8381670Z             {
2026-06-10T22:49:44.8381791Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.8381886Z               "line": 357
2026-06-10T22:49:44.8382077Z             },
2026-06-10T22:49:44.8382171Z             {
2026-06-10T22:49:44.8382305Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-10T22:49:44.8382397Z               "line": 31
2026-06-10T22:49:44.8382486Z             },
2026-06-10T22:49:44.8382572Z             {
2026-06-10T22:49:44.8382702Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-10T22:49:44.8382797Z               "line": 50
2026-06-10T22:49:44.8382997Z             },
2026-06-10T22:49:44.8383088Z             {
2026-06-10T22:49:44.8383210Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-10T22:49:44.8383305Z               "line": 69
2026-06-10T22:49:44.8383400Z             },
2026-06-10T22:49:44.8383489Z             {
2026-06-10T22:49:44.8383612Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-10T22:49:44.8383713Z               "line": 113
2026-06-10T22:49:44.8383804Z             },
2026-06-10T22:49:44.8383889Z             {
2026-06-10T22:49:44.8384038Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-10T22:49:44.8384133Z               "line": 25
2026-06-10T22:49:44.8384222Z             },
2026-06-10T22:49:44.8384310Z             {
2026-06-10T22:49:44.8384438Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-10T22:49:44.8384533Z               "line": 34
2026-06-10T22:49:44.8384620Z             },
2026-06-10T22:49:44.8384710Z             {
2026-06-10T22:49:44.8384838Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-10T22:49:44.8384934Z               "line": 17
2026-06-10T22:49:44.8385020Z             },
2026-06-10T22:49:44.8385110Z             {
2026-06-10T22:49:44.8385220Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8385311Z               "line": 3714
2026-06-10T22:49:44.8385406Z             },
2026-06-10T22:49:44.8385491Z             {
2026-06-10T22:49:44.8385607Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T22:49:44.8385701Z               "line": 419
2026-06-10T22:49:44.8385797Z             }
2026-06-10T22:49:44.8385884Z           ]
2026-06-10T22:49:44.8385970Z         },
2026-06-10T22:49:44.8386068Z         "int": {
2026-06-10T22:49:44.8386163Z           "complete": true,
2026-06-10T22:49:44.8386249Z           "evidence": [
2026-06-10T22:49:44.8386336Z             {
2026-06-10T22:49:44.8386463Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.8386564Z               "line": 814
2026-06-10T22:49:44.8386649Z             }
2026-06-10T22:49:44.8386740Z           ]
2026-06-10T22:49:44.8386816Z         },
2026-06-10T22:49:44.8386908Z         "unit": {
2026-06-10T22:49:44.8386998Z           "complete": true,
2026-06-10T22:49:44.8387097Z           "evidence": [
2026-06-10T22:49:44.8387184Z             {
2026-06-10T22:49:44.8387307Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T22:49:44.8387402Z               "line": 341
2026-06-10T22:49:44.8387489Z             },
2026-06-10T22:49:44.8387580Z             {
2026-06-10T22:49:44.8387708Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-10T22:49:44.8387804Z               "line": 151
2026-06-10T22:49:44.8387890Z             },
2026-06-10T22:49:44.8387974Z             {
2026-06-10T22:49:44.8388104Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-10T22:49:44.8388196Z               "line": 61
2026-06-10T22:49:44.8388275Z             },
2026-06-10T22:49:44.8388365Z             {
2026-06-10T22:49:44.8388484Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-10T22:49:44.8388583Z               "line": 111
2026-06-10T22:49:44.8388658Z             },
2026-06-10T22:49:44.8388748Z             {
2026-06-10T22:49:44.8388873Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-10T22:49:44.8389053Z               "line": 138
2026-06-10T22:49:44.8389150Z             },
2026-06-10T22:49:44.8389236Z             {
2026-06-10T22:49:44.8389349Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-10T22:49:44.8389545Z               "line": 148
2026-06-10T22:49:44.8389635Z             },
2026-06-10T22:49:44.8389727Z             {
2026-06-10T22:49:44.8389836Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8389931Z               "line": 6989
2026-06-10T22:49:44.8390021Z             }
2026-06-10T22:49:44.8390109Z           ]
2026-06-10T22:49:44.8390193Z         }
2026-06-10T22:49:44.8390284Z       }
2026-06-10T22:49:44.8390452Z     },
2026-06-10T22:49:44.8390541Z     {
2026-06-10T22:49:44.8390642Z       "id": "REQ-SUBNET-6",
2026-06-10T22:49:44.8391308Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-10T22:49:44.8391399Z       "requiredStages": [
2026-06-10T22:49:44.8391487Z         "impl",
2026-06-10T22:49:44.8391582Z         "unit"
2026-06-10T22:49:44.8391673Z       ],
2026-06-10T22:49:44.8391755Z       "stages": {
2026-06-10T22:49:44.8391840Z         "doc": {
2026-06-10T22:49:44.8391935Z           "complete": false,
2026-06-10T22:49:44.8392031Z           "evidence": []
2026-06-10T22:49:44.8392122Z         },
2026-06-10T22:49:44.8392212Z         "impl": {
2026-06-10T22:49:44.8392308Z           "complete": true,
2026-06-10T22:49:44.8392408Z           "evidence": [
2026-06-10T22:49:44.8392521Z             {
2026-06-10T22:49:44.8392642Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8392741Z               "line": 238
2026-06-10T22:49:44.8392827Z             },
2026-06-10T22:49:44.8392913Z             {
2026-06-10T22:49:44.8393018Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8393118Z               "line": 3372
2026-06-10T22:49:44.8393208Z             },
2026-06-10T22:49:44.8393296Z             {
2026-06-10T22:49:44.8393399Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8393495Z               "line": 3389
2026-06-10T22:49:44.8393591Z             },
2026-06-10T22:49:44.8393681Z             {
2026-06-10T22:49:44.8393789Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8393894Z               "line": 3442
2026-06-10T22:49:44.8393979Z             },
2026-06-10T22:49:44.8394068Z             {
2026-06-10T22:49:44.8394172Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8394269Z               "line": 3465
2026-06-10T22:49:44.8394364Z             }
2026-06-10T22:49:44.8394449Z           ]
2026-06-10T22:49:44.8394540Z         },
2026-06-10T22:49:44.8394627Z         "int": {
2026-06-10T22:49:44.8394726Z           "complete": false,
2026-06-10T22:49:44.8394821Z           "evidence": []
2026-06-10T22:49:44.8394908Z         },
2026-06-10T22:49:44.8394998Z         "unit": {
2026-06-10T22:49:44.8395098Z           "complete": true,
2026-06-10T22:49:44.8395190Z           "evidence": [
2026-06-10T22:49:44.8395275Z             {
2026-06-10T22:49:44.8395389Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8395480Z               "line": 7003
2026-06-10T22:49:44.8395571Z             },
2026-06-10T22:49:44.8395656Z             {
2026-06-10T22:49:44.8395761Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8395853Z               "line": 7036
2026-06-10T22:49:44.8395942Z             },
2026-06-10T22:49:44.8396028Z             {
2026-06-10T22:49:44.8396129Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8396229Z               "line": 7045
2026-06-10T22:49:44.8396318Z             }
2026-06-10T22:49:44.8396405Z           ]
2026-06-10T22:49:44.8396492Z         }
2026-06-10T22:49:44.8396581Z       }
2026-06-10T22:49:44.8396670Z     },
2026-06-10T22:49:44.8396756Z     {
2026-06-10T22:49:44.8396853Z       "id": "REQ-SUBNET-7",
2026-06-10T22:49:44.8398464Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-10T22:49:44.8398650Z       "requiredStages": [
2026-06-10T22:49:44.8398816Z         "impl",
2026-06-10T22:49:44.8398906Z         "unit"
2026-06-10T22:49:44.8399082Z       ],
2026-06-10T22:49:44.8399176Z       "stages": {
2026-06-10T22:49:44.8399266Z         "doc": {
2026-06-10T22:49:44.8399361Z           "complete": false,
2026-06-10T22:49:44.8399453Z           "evidence": []
2026-06-10T22:49:44.8399542Z         },
2026-06-10T22:49:44.8399633Z         "impl": {
2026-06-10T22:49:44.8399734Z           "complete": true,
2026-06-10T22:49:44.8399829Z           "evidence": [
2026-06-10T22:49:44.8399919Z             {
2026-06-10T22:49:44.8400054Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-10T22:49:44.8400144Z               "line": 17
2026-06-10T22:49:44.8400233Z             },
2026-06-10T22:49:44.8400320Z             {
2026-06-10T22:49:44.8400449Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.8400543Z               "line": 103
2026-06-10T22:49:44.8400630Z             },
2026-06-10T22:49:44.8400730Z             {
2026-06-10T22:49:44.8400853Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T22:49:44.8400950Z               "line": 312
2026-06-10T22:49:44.8401036Z             },
2026-06-10T22:49:44.8401126Z             {
2026-06-10T22:49:44.8401246Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.8401341Z               "line": 388
2026-06-10T22:49:44.8401430Z             },
2026-06-10T22:49:44.8401517Z             {
2026-06-10T22:49:44.8401652Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8401745Z               "line": 160
2026-06-10T22:49:44.8401835Z             },
2026-06-10T22:49:44.8401925Z             {
2026-06-10T22:49:44.8402052Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8402147Z               "line": 417
2026-06-10T22:49:44.8402238Z             },
2026-06-10T22:49:44.8402329Z             {
2026-06-10T22:49:44.8402457Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8402553Z               "line": 590
2026-06-10T22:49:44.8402643Z             },
2026-06-10T22:49:44.8402738Z             {
2026-06-10T22:49:44.8402868Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8402958Z               "line": 630
2026-06-10T22:49:44.8403048Z             },
2026-06-10T22:49:44.8403134Z             {
2026-06-10T22:49:44.8403259Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8403354Z               "line": 686
2026-06-10T22:49:44.8403440Z             },
2026-06-10T22:49:44.8403536Z             {
2026-06-10T22:49:44.8403663Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8403764Z               "line": 136
2026-06-10T22:49:44.8403856Z             },
2026-06-10T22:49:44.8403945Z             {
2026-06-10T22:49:44.8404074Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8404166Z               "line": 139
2026-06-10T22:49:44.8404260Z             }
2026-06-10T22:49:44.8404350Z           ]
2026-06-10T22:49:44.8404440Z         },
2026-06-10T22:49:44.8404530Z         "int": {
2026-06-10T22:49:44.8404628Z           "complete": false,
2026-06-10T22:49:44.8404723Z           "evidence": []
2026-06-10T22:49:44.8404810Z         },
2026-06-10T22:49:44.8404906Z         "unit": {
2026-06-10T22:49:44.8405000Z           "complete": true,
2026-06-10T22:49:44.8405091Z           "evidence": [
2026-06-10T22:49:44.8405182Z             {
2026-06-10T22:49:44.8405305Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-10T22:49:44.8405501Z               "line": 136
2026-06-10T22:49:44.8405587Z             },
2026-06-10T22:49:44.8405681Z             {
2026-06-10T22:49:44.8405797Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-10T22:49:44.8405897Z               "line": 156
2026-06-10T22:49:44.8405992Z             },
2026-06-10T22:49:44.8406074Z             {
2026-06-10T22:49:44.8406207Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8406418Z               "line": 905
2026-06-10T22:49:44.8406507Z             },
2026-06-10T22:49:44.8406593Z             {
2026-06-10T22:49:44.8406723Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T22:49:44.8406812Z               "line": 927
2026-06-10T22:49:44.8406903Z             },
2026-06-10T22:49:44.8406990Z             {
2026-06-10T22:49:44.8407118Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T22:49:44.8407212Z               "line": 1419
2026-06-10T22:49:44.8407302Z             },
2026-06-10T22:49:44.8407393Z             {
2026-06-10T22:49:44.8407517Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T22:49:44.8407607Z               "line": 985
2026-06-10T22:49:44.8407699Z             }
2026-06-10T22:49:44.8407789Z           ]
2026-06-10T22:49:44.8407884Z         }
2026-06-10T22:49:44.8407970Z       }
2026-06-10T22:49:44.8408056Z     },
2026-06-10T22:49:44.8408151Z     {
2026-06-10T22:49:44.8408251Z       "id": "REQ-SUBNET-8",
2026-06-10T22:49:44.8409405Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-10T22:49:44.8409509Z       "requiredStages": [
2026-06-10T22:49:44.8409633Z         "impl",
2026-06-10T22:49:44.8409769Z         "unit"
2026-06-10T22:49:44.8409912Z       ],
2026-06-10T22:49:44.8410042Z       "stages": {
2026-06-10T22:49:44.8410169Z         "doc": {
2026-06-10T22:49:44.8410309Z           "complete": false,
2026-06-10T22:49:44.8410413Z           "evidence": []
2026-06-10T22:49:44.8410498Z         },
2026-06-10T22:49:44.8410590Z         "impl": {
2026-06-10T22:49:44.8410685Z           "complete": true,
2026-06-10T22:49:44.8410779Z           "evidence": [
2026-06-10T22:49:44.8410876Z             {
2026-06-10T22:49:44.8410994Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8411094Z               "line": 2761
2026-06-10T22:49:44.8411181Z             },
2026-06-10T22:49:44.8411271Z             {
2026-06-10T22:49:44.8411381Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8411481Z               "line": 2790
2026-06-10T22:49:44.8411568Z             },
2026-06-10T22:49:44.8411656Z             {
2026-06-10T22:49:44.8411767Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8411863Z               "line": 2807
2026-06-10T22:49:44.8411957Z             },
2026-06-10T22:49:44.8412043Z             {
2026-06-10T22:49:44.8412150Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8412244Z               "line": 3228
2026-06-10T22:49:44.8412343Z             }
2026-06-10T22:49:44.8412428Z           ]
2026-06-10T22:49:44.8412514Z         },
2026-06-10T22:49:44.8412613Z         "int": {
2026-06-10T22:49:44.8412712Z           "complete": false,
2026-06-10T22:49:44.8412812Z           "evidence": []
2026-06-10T22:49:44.8412899Z         },
2026-06-10T22:49:44.8412993Z         "unit": {
2026-06-10T22:49:44.8413089Z           "complete": true,
2026-06-10T22:49:44.8413185Z           "evidence": [
2026-06-10T22:49:44.8413271Z             {
2026-06-10T22:49:44.8413375Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8413476Z               "line": 7193
2026-06-10T22:49:44.8413562Z             }
2026-06-10T22:49:44.8413651Z           ]
2026-06-10T22:49:44.8413861Z         }
2026-06-10T22:49:44.8413952Z       }
2026-06-10T22:49:44.8414038Z     },
2026-06-10T22:49:44.8414120Z     {
2026-06-10T22:49:44.8414218Z       "id": "REQ-TERM-1",
2026-06-10T22:49:44.8414401Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-10T22:49:44.8414500Z       "requiredStages": [
2026-06-10T22:49:44.8414596Z         "impl",
2026-06-10T22:49:44.8414683Z         "unit"
2026-06-10T22:49:44.8414876Z       ],
2026-06-10T22:49:44.8414990Z       "stages": {
2026-06-10T22:49:44.8415114Z         "doc": {
2026-06-10T22:49:44.8415231Z           "complete": false,
2026-06-10T22:49:44.8415327Z           "evidence": []
2026-06-10T22:49:44.8415413Z         },
2026-06-10T22:49:44.8415512Z         "impl": {
2026-06-10T22:49:44.8415607Z           "complete": true,
2026-06-10T22:49:44.8415700Z           "evidence": [
2026-06-10T22:49:44.8415790Z             {
2026-06-10T22:49:44.8415913Z               "path": "crates/spt-term/src/pty.rs",
2026-06-10T22:49:44.8416010Z               "line": 59
2026-06-10T22:49:44.8416104Z             },
2026-06-10T22:49:44.8416194Z             {
2026-06-10T22:49:44.8416310Z               "path": "crates/spt-term/src/pty.rs",
2026-06-10T22:49:44.8416404Z               "line": 171
2026-06-10T22:49:44.8416495Z             },
2026-06-10T22:49:44.8416580Z             {
2026-06-10T22:49:44.8416705Z               "path": "crates/spt-term/src/surface.rs",
2026-06-10T22:49:44.8416800Z               "line": 100
2026-06-10T22:49:44.8416895Z             }
2026-06-10T22:49:44.8416983Z           ]
2026-06-10T22:49:44.8417067Z         },
2026-06-10T22:49:44.8417157Z         "int": {
2026-06-10T22:49:44.8417254Z           "complete": false,
2026-06-10T22:49:44.8417349Z           "evidence": []
2026-06-10T22:49:44.8417439Z         },
2026-06-10T22:49:44.8417525Z         "unit": {
2026-06-10T22:49:44.8417631Z           "complete": true,
2026-06-10T22:49:44.8417724Z           "evidence": [
2026-06-10T22:49:44.8417814Z             {
2026-06-10T22:49:44.8417939Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-10T22:49:44.8418039Z               "line": 24
2026-06-10T22:49:44.8418129Z             },
2026-06-10T22:49:44.8418215Z             {
2026-06-10T22:49:44.8418335Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-10T22:49:44.8418430Z               "line": 56
2026-06-10T22:49:44.8418521Z             }
2026-06-10T22:49:44.8418607Z           ]
2026-06-10T22:49:44.8418702Z         }
2026-06-10T22:49:44.8418792Z       }
2026-06-10T22:49:44.8418874Z     },
2026-06-10T22:49:44.8419059Z     {
2026-06-10T22:49:44.8419155Z       "id": "REQ-TERM-2",
2026-06-10T22:49:44.8419341Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-10T22:49:44.8419436Z       "requiredStages": [
2026-06-10T22:49:44.8419528Z         "impl",
2026-06-10T22:49:44.8419622Z         "unit"
2026-06-10T22:49:44.8419708Z       ],
2026-06-10T22:49:44.8419804Z       "stages": {
2026-06-10T22:49:44.8419894Z         "doc": {
2026-06-10T22:49:44.8419998Z           "complete": false,
2026-06-10T22:49:44.8420093Z           "evidence": []
2026-06-10T22:49:44.8420184Z         },
2026-06-10T22:49:44.8420273Z         "impl": {
2026-06-10T22:49:44.8420367Z           "complete": true,
2026-06-10T22:49:44.8420467Z           "evidence": [
2026-06-10T22:49:44.8420554Z             {
2026-06-10T22:49:44.8420672Z               "path": "crates/spt-term/src/surface.rs",
2026-06-10T22:49:44.8420772Z               "line": 117
2026-06-10T22:49:44.8420864Z             },
2026-06-10T22:49:44.8420949Z             {
2026-06-10T22:49:44.8421068Z               "path": "crates/spt-term/src/surface.rs",
2026-06-10T22:49:44.8421164Z               "line": 127
2026-06-10T22:49:44.8421250Z             }
2026-06-10T22:49:44.8421339Z           ]
2026-06-10T22:49:44.8421427Z         },
2026-06-10T22:49:44.8421522Z         "int": {
2026-06-10T22:49:44.8421626Z           "complete": false,
2026-06-10T22:49:44.8421726Z           "evidence": []
2026-06-10T22:49:44.8421817Z         },
2026-06-10T22:49:44.8422007Z         "unit": {
2026-06-10T22:49:44.8422108Z           "complete": true,
2026-06-10T22:49:44.8422198Z           "evidence": [
2026-06-10T22:49:44.8422289Z             {
2026-06-10T22:49:44.8422409Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-10T22:49:44.8422503Z               "line": 46
2026-06-10T22:49:44.8422594Z             },
2026-06-10T22:49:44.8422681Z             {
2026-06-10T22:49:44.8422879Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-10T22:49:44.8422974Z               "line": 77
2026-06-10T22:49:44.8423055Z             }
2026-06-10T22:49:44.8423149Z           ]
2026-06-10T22:49:44.8423229Z         }
2026-06-10T22:49:44.8423320Z       }
2026-06-10T22:49:44.8423407Z     },
2026-06-10T22:49:44.8423488Z     {
2026-06-10T22:49:44.8423582Z       "id": "REQ-TERM-3",
2026-06-10T22:49:44.8423722Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-10T22:49:44.8423821Z       "requiredStages": [
2026-06-10T22:49:44.8423906Z         "impl",
2026-06-10T22:49:44.8423998Z         "unit"
2026-06-10T22:49:44.8424088Z       ],
2026-06-10T22:49:44.8424174Z       "stages": {
2026-06-10T22:49:44.8424260Z         "doc": {
2026-06-10T22:49:44.8424351Z           "complete": false,
2026-06-10T22:49:44.8424450Z           "evidence": []
2026-06-10T22:49:44.8424536Z         },
2026-06-10T22:49:44.8424618Z         "impl": {
2026-06-10T22:49:44.8424704Z           "complete": true,
2026-06-10T22:49:44.8424803Z           "evidence": [
2026-06-10T22:49:44.8424884Z             {
2026-06-10T22:49:44.8425004Z               "path": "crates/spt-term/src/stream.rs",
2026-06-10T22:49:44.8425098Z               "line": 71
2026-06-10T22:49:44.8425184Z             }
2026-06-10T22:49:44.8425267Z           ]
2026-06-10T22:49:44.8425362Z         },
2026-06-10T22:49:44.8425474Z         "int": {
2026-06-10T22:49:44.8425560Z           "complete": false,
2026-06-10T22:49:44.8425651Z           "evidence": []
2026-06-10T22:49:44.8425739Z         },
2026-06-10T22:49:44.8425834Z         "unit": {
2026-06-10T22:49:44.8425920Z           "complete": true,
2026-06-10T22:49:44.8426007Z           "evidence": [
2026-06-10T22:49:44.8426087Z             {
2026-06-10T22:49:44.8426206Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-10T22:49:44.8426302Z               "line": 37
2026-06-10T22:49:44.8426388Z             },
2026-06-10T22:49:44.8426473Z             {
2026-06-10T22:49:44.8426594Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-10T22:49:44.8426689Z               "line": 67
2026-06-10T22:49:44.8426768Z             }
2026-06-10T22:49:44.8426846Z           ]
2026-06-10T22:49:44.8426932Z         }
2026-06-10T22:49:44.8427007Z       }
2026-06-10T22:49:44.8427088Z     },
2026-06-10T22:49:44.8427175Z     {
2026-06-10T22:49:44.8427270Z       "id": "REQ-TERM-4",
2026-06-10T22:49:44.8427622Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-10T22:49:44.8427722Z       "requiredStages": [
2026-06-10T22:49:44.8427814Z         "impl",
2026-06-10T22:49:44.8427909Z         "unit",
2026-06-10T22:49:44.8427984Z         "int"
2026-06-10T22:49:44.8428076Z       ],
2026-06-10T22:49:44.8428153Z       "stages": {
2026-06-10T22:49:44.8428248Z         "doc": {
2026-06-10T22:49:44.8428332Z           "complete": true,
2026-06-10T22:49:44.8428427Z           "evidence": [
2026-06-10T22:49:44.8428518Z             {
2026-06-10T22:49:44.8428627Z               "path": "docs/MANIFEST.md",
2026-06-10T22:49:44.8428722Z               "line": 115
2026-06-10T22:49:44.8428804Z             }
2026-06-10T22:49:44.8428885Z           ]
2026-06-10T22:49:44.8429056Z         },
2026-06-10T22:49:44.8429148Z         "impl": {
2026-06-10T22:49:44.8429239Z           "complete": true,
2026-06-10T22:49:44.8429343Z           "evidence": [
2026-06-10T22:49:44.8429434Z             {
2026-06-10T22:49:44.8429553Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.8429652Z               "line": 624
2026-06-10T22:49:44.8429825Z             },
2026-06-10T22:49:44.8429915Z             {
2026-06-10T22:49:44.8430040Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T22:49:44.8430135Z               "line": 41
2026-06-10T22:49:44.8430230Z             },
2026-06-10T22:49:44.8430306Z             {
2026-06-10T22:49:44.8430427Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T22:49:44.8430610Z               "line": 91
2026-06-10T22:49:44.8430696Z             },
2026-06-10T22:49:44.8430777Z             {
2026-06-10T22:49:44.8430894Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T22:49:44.8430994Z               "line": 152
2026-06-10T22:49:44.8431080Z             },
2026-06-10T22:49:44.8431170Z             {
2026-06-10T22:49:44.8431284Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T22:49:44.8431371Z               "line": 221
2026-06-10T22:49:44.8431457Z             },
2026-06-10T22:49:44.8431537Z             {
2026-06-10T22:49:44.8431672Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T22:49:44.8431762Z               "line": 20
2026-06-10T22:49:44.8431847Z             },
2026-06-10T22:49:44.8431923Z             {
2026-06-10T22:49:44.8432048Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T22:49:44.8432143Z               "line": 222
2026-06-10T22:49:44.8432238Z             },
2026-06-10T22:49:44.8432321Z             {
2026-06-10T22:49:44.8432434Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T22:49:44.8432530Z               "line": 242
2026-06-10T22:49:44.8432621Z             },
2026-06-10T22:49:44.8432711Z             {
2026-06-10T22:49:44.8432825Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.8432916Z               "line": 625
2026-06-10T22:49:44.8433007Z             },
2026-06-10T22:49:44.8433092Z             {
2026-06-10T22:49:44.8433202Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T22:49:44.8433299Z               "line": 162
2026-06-10T22:49:44.8433388Z             },
2026-06-10T22:49:44.8433468Z             {
2026-06-10T22:49:44.8433582Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T22:49:44.8433677Z               "line": 206
2026-06-10T22:49:44.8433757Z             },
2026-06-10T22:49:44.8433846Z             {
2026-06-10T22:49:44.8433957Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T22:49:44.8434052Z               "line": 233
2026-06-10T22:49:44.8434142Z             },
2026-06-10T22:49:44.8434234Z             {
2026-06-10T22:49:44.8434343Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8434433Z               "line": 860
2026-06-10T22:49:44.8434524Z             }
2026-06-10T22:49:44.8434606Z           ]
2026-06-10T22:49:44.8434687Z         },
2026-06-10T22:49:44.8434776Z         "int": {
2026-06-10T22:49:44.8434873Z           "complete": true,
2026-06-10T22:49:44.8434968Z           "evidence": [
2026-06-10T22:49:44.8435053Z             {
2026-06-10T22:49:44.8435183Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-10T22:49:44.8435278Z               "line": 18
2026-06-10T22:49:44.8435358Z             }
2026-06-10T22:49:44.8435454Z           ]
2026-06-10T22:49:44.8435545Z         },
2026-06-10T22:49:44.8435640Z         "unit": {
2026-06-10T22:49:44.8435735Z           "complete": true,
2026-06-10T22:49:44.8435832Z           "evidence": [
2026-06-10T22:49:44.8435917Z             {
2026-06-10T22:49:44.8436039Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T22:49:44.8436130Z               "line": 259
2026-06-10T22:49:44.8436220Z             },
2026-06-10T22:49:44.8436309Z             {
2026-06-10T22:49:44.8436423Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T22:49:44.8436519Z               "line": 277
2026-06-10T22:49:44.8436601Z             },
2026-06-10T22:49:44.8436680Z             {
2026-06-10T22:49:44.8436796Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T22:49:44.8436972Z               "line": 289
2026-06-10T22:49:44.8437062Z             },
2026-06-10T22:49:44.8437139Z             {
2026-06-10T22:49:44.8437258Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T22:49:44.8437352Z               "line": 304
2026-06-10T22:49:44.8437430Z             },
2026-06-10T22:49:44.8439616Z             {
2026-06-10T22:49:44.8439784Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T22:49:44.8440028Z               "line": 320
2026-06-10T22:49:44.8440117Z             },
2026-06-10T22:49:44.8440203Z             {
2026-06-10T22:49:44.8440338Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T22:49:44.8440427Z               "line": 346
2026-06-10T22:49:44.8440523Z             },
2026-06-10T22:49:44.8440610Z             {
2026-06-10T22:49:44.8440737Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T22:49:44.8440832Z               "line": 361
2026-06-10T22:49:44.8440924Z             },
2026-06-10T22:49:44.8441015Z             {
2026-06-10T22:49:44.8441128Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T22:49:44.8441227Z               "line": 391
2026-06-10T22:49:44.8441314Z             },
2026-06-10T22:49:44.8441393Z             {
2026-06-10T22:49:44.8441525Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T22:49:44.8441617Z               "line": 365
2026-06-10T22:49:44.8441703Z             },
2026-06-10T22:49:44.8441792Z             {
2026-06-10T22:49:44.8441917Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T22:49:44.8442012Z               "line": 382
2026-06-10T22:49:44.8442107Z             },
2026-06-10T22:49:44.8442193Z             {
2026-06-10T22:49:44.8442303Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T22:49:44.8442398Z               "line": 411
2026-06-10T22:49:44.8442479Z             },
2026-06-10T22:49:44.8442571Z             {
2026-06-10T22:49:44.8442680Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T22:49:44.8442779Z               "line": 428
2026-06-10T22:49:44.8442876Z             },
2026-06-10T22:49:44.8442965Z             {
2026-06-10T22:49:44.8443080Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.8443171Z               "line": 828
2026-06-10T22:49:44.8443262Z             },
2026-06-10T22:49:44.8443347Z             {
2026-06-10T22:49:44.8443462Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.8443558Z               "line": 835
2026-06-10T22:49:44.8443647Z             },
2026-06-10T22:49:44.8443734Z             {
2026-06-10T22:49:44.8443849Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.8443938Z               "line": 850
2026-06-10T22:49:44.8444023Z             },
2026-06-10T22:49:44.8444114Z             {
2026-06-10T22:49:44.8444223Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T22:49:44.8444317Z               "line": 420
2026-06-10T22:49:44.8444411Z             },
2026-06-10T22:49:44.8444503Z             {
2026-06-10T22:49:44.8444612Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T22:49:44.8444707Z               "line": 458
2026-06-10T22:49:44.8444799Z             },
2026-06-10T22:49:44.8444884Z             {
2026-06-10T22:49:44.8444989Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T22:49:44.8445084Z               "line": 471
2026-06-10T22:49:44.8445171Z             },
2026-06-10T22:49:44.8445266Z             {
2026-06-10T22:49:44.8445375Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T22:49:44.8445471Z               "line": 497
2026-06-10T22:49:44.8445561Z             },
2026-06-10T22:49:44.8445642Z             {
2026-06-10T22:49:44.8445758Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T22:49:44.8445838Z               "line": 524
2026-06-10T22:49:44.8445918Z             },
2026-06-10T22:49:44.8445999Z             {
2026-06-10T22:49:44.8446124Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-10T22:49:44.8446349Z               "line": 32
2026-06-10T22:49:44.8446439Z             },
2026-06-10T22:49:44.8446538Z             {
2026-06-10T22:49:44.8446671Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8446776Z               "line": 6761
2026-06-10T22:49:44.8446869Z             }
2026-06-10T22:49:44.8446964Z           ]
2026-06-10T22:49:44.8447055Z         }
2026-06-10T22:49:44.8447142Z       }
2026-06-10T22:49:44.8447312Z     },
2026-06-10T22:49:44.8447404Z     {
2026-06-10T22:49:44.8447504Z       "id": "REQ-UPD-1",
2026-06-10T22:49:44.8447636Z       "title": "Peer-propagated update over P2P",
2026-06-10T22:49:44.8447742Z       "requiredStages": [
2026-06-10T22:49:44.8447833Z         "impl",
2026-06-10T22:49:44.8447922Z         "unit",
2026-06-10T22:49:44.8448009Z         "int"
2026-06-10T22:49:44.8448099Z       ],
2026-06-10T22:49:44.8448194Z       "stages": {
2026-06-10T22:49:44.8448285Z         "doc": {
2026-06-10T22:49:44.8448390Z           "complete": false,
2026-06-10T22:49:44.8448500Z           "evidence": []
2026-06-10T22:49:44.8448590Z         },
2026-06-10T22:49:44.8448682Z         "impl": {
2026-06-10T22:49:44.8448780Z           "complete": true,
2026-06-10T22:49:44.8448876Z           "evidence": [
2026-06-10T22:49:44.8449039Z             {
2026-06-10T22:49:44.8449181Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8449278Z               "line": 28
2026-06-10T22:49:44.8449373Z             },
2026-06-10T22:49:44.8449466Z             {
2026-06-10T22:49:44.8449596Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8449692Z               "line": 103
2026-06-10T22:49:44.8449781Z             },
2026-06-10T22:49:44.8449901Z             {
2026-06-10T22:49:44.8450030Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8450124Z               "line": 342
2026-06-10T22:49:44.8450216Z             },
2026-06-10T22:49:44.8450306Z             {
2026-06-10T22:49:44.8450434Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8450530Z               "line": 22
2026-06-10T22:49:44.8450621Z             },
2026-06-10T22:49:44.8450712Z             {
2026-06-10T22:49:44.8450830Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8450927Z               "line": 205
2026-06-10T22:49:44.8451016Z             },
2026-06-10T22:49:44.8451107Z             {
2026-06-10T22:49:44.8451227Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8451325Z               "line": 281
2026-06-10T22:49:44.8451421Z             },
2026-06-10T22:49:44.8451508Z             {
2026-06-10T22:49:44.8451627Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8451716Z               "line": 338
2026-06-10T22:49:44.8451807Z             },
2026-06-10T22:49:44.8451893Z             {
2026-06-10T22:49:44.8452019Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T22:49:44.8452114Z               "line": 37
2026-06-10T22:49:44.8452206Z             }
2026-06-10T22:49:44.8452296Z           ]
2026-06-10T22:49:44.8452381Z         },
2026-06-10T22:49:44.8452477Z         "int": {
2026-06-10T22:49:44.8452577Z           "complete": true,
2026-06-10T22:49:44.8452672Z           "evidence": [
2026-06-10T22:49:44.8452763Z             {
2026-06-10T22:49:44.8452892Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T22:49:44.8452986Z               "line": 207
2026-06-10T22:49:44.8453083Z             },
2026-06-10T22:49:44.8453174Z             {
2026-06-10T22:49:44.8453292Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T22:49:44.8453392Z               "line": 987
2026-06-10T22:49:44.8453484Z             }
2026-06-10T22:49:44.8453569Z           ]
2026-06-10T22:49:44.8453659Z         },
2026-06-10T22:49:44.8453751Z         "unit": {
2026-06-10T22:49:44.8453850Z           "complete": true,
2026-06-10T22:49:44.8453941Z           "evidence": [
2026-06-10T22:49:44.8454032Z             {
2026-06-10T22:49:44.8454265Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8454362Z               "line": 464
2026-06-10T22:49:44.8454452Z             },
2026-06-10T22:49:44.8454541Z             {
2026-06-10T22:49:44.8454664Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8454760Z               "line": 590
2026-06-10T22:49:44.8454853Z             },
2026-06-10T22:49:44.8454943Z             {
2026-06-10T22:49:44.8455172Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-10T22:49:44.8455267Z               "line": 277
2026-06-10T22:49:44.8455354Z             },
2026-06-10T22:49:44.8455449Z             {
2026-06-10T22:49:44.8455573Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T22:49:44.8455664Z               "line": 124
2026-06-10T22:49:44.8455754Z             },
2026-06-10T22:49:44.8455840Z             {
2026-06-10T22:49:44.8455964Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T22:49:44.8456060Z               "line": 200
2026-06-10T22:49:44.8456155Z             }
2026-06-10T22:49:44.8456250Z           ]
2026-06-10T22:49:44.8456342Z         }
2026-06-10T22:49:44.8456431Z       }
2026-06-10T22:49:44.8456517Z     },
2026-06-10T22:49:44.8456613Z     {
2026-06-10T22:49:44.8456713Z       "id": "REQ-UPD-2",
2026-06-10T22:49:44.8456865Z       "title": "All binaries signature-verified before handoff",
2026-06-10T22:49:44.8456957Z       "requiredStages": [
2026-06-10T22:49:44.8457056Z         "impl",
2026-06-10T22:49:44.8457145Z         "unit"
2026-06-10T22:49:44.8457231Z       ],
2026-06-10T22:49:44.8457321Z       "stages": {
2026-06-10T22:49:44.8457415Z         "doc": {
2026-06-10T22:49:44.8457509Z           "complete": false,
2026-06-10T22:49:44.8457606Z           "evidence": []
2026-06-10T22:49:44.8457687Z         },
2026-06-10T22:49:44.8457782Z         "impl": {
2026-06-10T22:49:44.8457877Z           "complete": true,
2026-06-10T22:49:44.8457969Z           "evidence": [
2026-06-10T22:49:44.8458059Z             {
2026-06-10T22:49:44.8458192Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8458288Z               "line": 343
2026-06-10T22:49:44.8458373Z             },
2026-06-10T22:49:44.8458463Z             {
2026-06-10T22:49:44.8458574Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8458664Z               "line": 469
2026-06-10T22:49:44.8458745Z             },
2026-06-10T22:49:44.8458841Z             {
2026-06-10T22:49:44.8459027Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8459122Z               "line": 29
2026-06-10T22:49:44.8459213Z             },
2026-06-10T22:49:44.8459303Z             {
2026-06-10T22:49:44.8459422Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8459519Z               "line": 271
2026-06-10T22:49:44.8459613Z             },
2026-06-10T22:49:44.8459694Z             {
2026-06-10T22:49:44.8459800Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8459895Z               "line": 288
2026-06-10T22:49:44.8459989Z             },
2026-06-10T22:49:44.8460084Z             {
2026-06-10T22:49:44.8460194Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8460290Z               "line": 408
2026-06-10T22:49:44.8460384Z             },
2026-06-10T22:49:44.8460471Z             {
2026-06-10T22:49:44.8460585Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8460679Z               "line": 540
2026-06-10T22:49:44.8460771Z             },
2026-06-10T22:49:44.8460857Z             {
2026-06-10T22:49:44.8460976Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.8461066Z               "line": 155
2026-06-10T22:49:44.8461153Z             }
2026-06-10T22:49:44.8461242Z           ]
2026-06-10T22:49:44.8461332Z         },
2026-06-10T22:49:44.8461420Z         "int": {
2026-06-10T22:49:44.8461515Z           "complete": false,
2026-06-10T22:49:44.8461620Z           "evidence": []
2026-06-10T22:49:44.8461806Z         },
2026-06-10T22:49:44.8461900Z         "unit": {
2026-06-10T22:49:44.8462001Z           "complete": true,
2026-06-10T22:49:44.8462097Z           "evidence": [
2026-06-10T22:49:44.8462187Z             {
2026-06-10T22:49:44.8462305Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8462400Z               "line": 697
2026-06-10T22:49:44.8462490Z             },
2026-06-10T22:49:44.8462664Z             {
2026-06-10T22:49:44.8462785Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8462870Z               "line": 758
2026-06-10T22:49:44.8462951Z             },
2026-06-10T22:49:44.8463037Z             {
2026-06-10T22:49:44.8463157Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8463256Z               "line": 772
2026-06-10T22:49:44.8463343Z             },
2026-06-10T22:49:44.8463428Z             {
2026-06-10T22:49:44.8463546Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8463648Z               "line": 788
2026-06-10T22:49:44.8463729Z             },
2026-06-10T22:49:44.8463815Z             {
2026-06-10T22:49:44.8463933Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8464025Z               "line": 879
2026-06-10T22:49:44.8464114Z             },
2026-06-10T22:49:44.8464190Z             {
2026-06-10T22:49:44.8464311Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.8464415Z               "line": 414
2026-06-10T22:49:44.8464491Z             },
2026-06-10T22:49:44.8464582Z             {
2026-06-10T22:49:44.8464693Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.8464791Z               "line": 427
2026-06-10T22:49:44.8464868Z             },
2026-06-10T22:49:44.8464960Z             {
2026-06-10T22:49:44.8465091Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-10T22:49:44.8465182Z               "line": 410
2026-06-10T22:49:44.8465263Z             }
2026-06-10T22:49:44.8465353Z           ]
2026-06-10T22:49:44.8465441Z         }
2026-06-10T22:49:44.8465527Z       }
2026-06-10T22:49:44.8465604Z     },
2026-06-10T22:49:44.8465681Z     {
2026-06-10T22:49:44.8465780Z       "id": "REQ-UPD-3",
2026-06-10T22:49:44.8465948Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-10T22:49:44.8466048Z       "requiredStages": [
2026-06-10T22:49:44.8466137Z         "impl",
2026-06-10T22:49:44.8466229Z         "unit",
2026-06-10T22:49:44.8466319Z         "int"
2026-06-10T22:49:44.8466400Z       ],
2026-06-10T22:49:44.8466485Z       "stages": {
2026-06-10T22:49:44.8466577Z         "doc": {
2026-06-10T22:49:44.8466672Z           "complete": false,
2026-06-10T22:49:44.8466762Z           "evidence": []
2026-06-10T22:49:44.8466849Z         },
2026-06-10T22:49:44.8466939Z         "impl": {
2026-06-10T22:49:44.8467034Z           "complete": true,
2026-06-10T22:49:44.8467129Z           "evidence": [
2026-06-10T22:49:44.8467217Z             {
2026-06-10T22:49:44.8467344Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8467440Z               "line": 40
2026-06-10T22:49:44.8467522Z             },
2026-06-10T22:49:44.8467611Z             {
2026-06-10T22:49:44.8467729Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8467819Z               "line": 87
2026-06-10T22:49:44.8467910Z             },
2026-06-10T22:49:44.8467984Z             {
2026-06-10T22:49:44.8468113Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T22:49:44.8468204Z               "line": 797
2026-06-10T22:49:44.8468299Z             },
2026-06-10T22:49:44.8468389Z             {
2026-06-10T22:49:44.8468500Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T22:49:44.8468605Z               "line": 717
2026-06-10T22:49:44.8468695Z             },
2026-06-10T22:49:44.8468786Z             {
2026-06-10T22:49:44.8468900Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.8469077Z               "line": 26
2026-06-10T22:49:44.8469267Z             },
2026-06-10T22:49:44.8469352Z             {
2026-06-10T22:49:44.8469478Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.8469568Z               "line": 114
2026-06-10T22:49:44.8469649Z             },
2026-06-10T22:49:44.8469725Z             {
2026-06-10T22:49:44.8469849Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.8469944Z               "line": 246
2026-06-10T22:49:44.8470126Z             },
2026-06-10T22:49:44.8470206Z             {
2026-06-10T22:49:44.8470321Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8470413Z               "line": 1767
2026-06-10T22:49:44.8470497Z             }
2026-06-10T22:49:44.8470587Z           ]
2026-06-10T22:49:44.8470677Z         },
2026-06-10T22:49:44.8470749Z         "int": {
2026-06-10T22:49:44.8470850Z           "complete": true,
2026-06-10T22:49:44.8470939Z           "evidence": [
2026-06-10T22:49:44.8471016Z             {
2026-06-10T22:49:44.8471140Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-10T22:49:44.8471240Z               "line": 58
2026-06-10T22:49:44.8471331Z             }
2026-06-10T22:49:44.8471417Z           ]
2026-06-10T22:49:44.8471503Z         },
2026-06-10T22:49:44.8471578Z         "unit": {
2026-06-10T22:49:44.8471680Z           "complete": true,
2026-06-10T22:49:44.8471775Z           "evidence": [
2026-06-10T22:49:44.8471865Z             {
2026-06-10T22:49:44.8471990Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8472085Z               "line": 532
2026-06-10T22:49:44.8472175Z             },
2026-06-10T22:49:44.8472266Z             {
2026-06-10T22:49:44.8472390Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8472484Z               "line": 582
2026-06-10T22:49:44.8472576Z             },
2026-06-10T22:49:44.8472662Z             {
2026-06-10T22:49:44.8472780Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8472870Z               "line": 650
2026-06-10T22:49:44.8472951Z             },
2026-06-10T22:49:44.8473041Z             {
2026-06-10T22:49:44.8473163Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T22:49:44.8473254Z               "line": 950
2026-06-10T22:49:44.8473350Z             },
2026-06-10T22:49:44.8473440Z             {
2026-06-10T22:49:44.8473559Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.8473655Z               "line": 271
2026-06-10T22:49:44.8473755Z             },
2026-06-10T22:49:44.8473845Z             {
2026-06-10T22:49:44.8473960Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.8474055Z               "line": 295
2026-06-10T22:49:44.8474145Z             },
2026-06-10T22:49:44.8474232Z             {
2026-06-10T22:49:44.8474346Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.8474445Z               "line": 316
2026-06-10T22:49:44.8474542Z             },
2026-06-10T22:49:44.8474628Z             {
2026-06-10T22:49:44.8474751Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.8474842Z               "line": 332
2026-06-10T22:49:44.8474933Z             }
2026-06-10T22:49:44.8475022Z           ]
2026-06-10T22:49:44.8475113Z         }
2026-06-10T22:49:44.8475200Z       }
2026-06-10T22:49:44.8475286Z     },
2026-06-10T22:49:44.8475376Z     {
2026-06-10T22:49:44.8475472Z       "id": "REQ-UPD-4",
2026-06-10T22:49:44.8475661Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-10T22:49:44.8475765Z       "requiredStages": [
2026-06-10T22:49:44.8475861Z         "impl",
2026-06-10T22:49:44.8475950Z         "unit"
2026-06-10T22:49:44.8476039Z       ],
2026-06-10T22:49:44.8476131Z       "stages": {
2026-06-10T22:49:44.8476221Z         "doc": {
2026-06-10T22:49:44.8476326Z           "complete": false,
2026-06-10T22:49:44.8476416Z           "evidence": []
2026-06-10T22:49:44.8476508Z         },
2026-06-10T22:49:44.8476604Z         "impl": {
2026-06-10T22:49:44.8476789Z           "complete": true,
2026-06-10T22:49:44.8476884Z           "evidence": [
2026-06-10T22:49:44.8476969Z             {
2026-06-10T22:49:44.8477094Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8477185Z               "line": 41
2026-06-10T22:49:44.8477275Z             },
2026-06-10T22:49:44.8477365Z             {
2026-06-10T22:49:44.8477490Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8477656Z               "line": 88
2026-06-10T22:49:44.8477748Z             },
2026-06-10T22:49:44.8477838Z             {
2026-06-10T22:49:44.8477957Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-10T22:49:44.8478049Z               "line": 23
2026-06-10T22:49:44.8478144Z             },
2026-06-10T22:49:44.8478228Z             {
2026-06-10T22:49:44.8478351Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-10T22:49:44.8478442Z               "line": 56
2026-06-10T22:49:44.8478540Z             },
2026-06-10T22:49:44.8478630Z             {
2026-06-10T22:49:44.8478750Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-10T22:49:44.8478845Z               "line": 77
2026-06-10T22:49:44.8478931Z             },
2026-06-10T22:49:44.8479103Z             {
2026-06-10T22:49:44.8479226Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T22:49:44.8479327Z               "line": 186
2026-06-10T22:49:44.8479413Z             },
2026-06-10T22:49:44.8479508Z             {
2026-06-10T22:49:44.8479632Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T22:49:44.8479723Z               "line": 108
2026-06-10T22:49:44.8479813Z             },
2026-06-10T22:49:44.8479904Z             {
2026-06-10T22:49:44.8480024Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.8480113Z               "line": 170
2026-06-10T22:49:44.8480204Z             },
2026-06-10T22:49:44.8480300Z             {
2026-06-10T22:49:44.8480404Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8480509Z               "line": 1766
2026-06-10T22:49:44.8480596Z             }
2026-06-10T22:49:44.8480686Z           ]
2026-06-10T22:49:44.8480776Z         },
2026-06-10T22:49:44.8480867Z         "int": {
2026-06-10T22:49:44.8480964Z           "complete": false,
2026-06-10T22:49:44.8481057Z           "evidence": []
2026-06-10T22:49:44.8481152Z         },
2026-06-10T22:49:44.8481247Z         "unit": {
2026-06-10T22:49:44.8481353Z           "complete": true,
2026-06-10T22:49:44.8481443Z           "evidence": [
2026-06-10T22:49:44.8481533Z             {
2026-06-10T22:49:44.8481658Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8481753Z               "line": 578
2026-06-10T22:49:44.8481842Z             },
2026-06-10T22:49:44.8481935Z             {
2026-06-10T22:49:44.8482058Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8482152Z               "line": 703
2026-06-10T22:49:44.8482240Z             },
2026-06-10T22:49:44.8482335Z             {
2026-06-10T22:49:44.8482453Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T22:49:44.8482550Z               "line": 384
2026-06-10T22:49:44.8482640Z             },
2026-06-10T22:49:44.8482730Z             {
2026-06-10T22:49:44.8482850Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-10T22:49:44.8482940Z               "line": 102
2026-06-10T22:49:44.8483035Z             },
2026-06-10T22:49:44.8483126Z             {
2026-06-10T22:49:44.8483246Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-10T22:49:44.8483335Z               "line": 123
2026-06-10T22:49:44.8483430Z             },
2026-06-10T22:49:44.8483526Z             {
2026-06-10T22:49:44.8483638Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-10T22:49:44.8483733Z               "line": 142
2026-06-10T22:49:44.8483819Z             },
2026-06-10T22:49:44.8483915Z             {
2026-06-10T22:49:44.8484028Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T22:49:44.8484225Z               "line": 386
2026-06-10T22:49:44.8484315Z             },
2026-06-10T22:49:44.8484400Z             {
2026-06-10T22:49:44.8484520Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T22:49:44.8484611Z               "line": 556
2026-06-10T22:49:44.8484700Z             },
2026-06-10T22:49:44.8484788Z             {
2026-06-10T22:49:44.8484897Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8485164Z               "line": 5610
2026-06-10T22:49:44.8485254Z             }
2026-06-10T22:49:44.8485344Z           ]
2026-06-10T22:49:44.8485432Z         }
2026-06-10T22:49:44.8485521Z       }
2026-06-10T22:49:44.8485597Z     },
2026-06-10T22:49:44.8485683Z     {
2026-06-10T22:49:44.8485780Z       "id": "REQ-UPD-5",
2026-06-10T22:49:44.8485921Z       "title": "spt-core ripple-updates registered adapters",
2026-06-10T22:49:44.8486022Z       "requiredStages": [
2026-06-10T22:49:44.8486113Z         "impl",
2026-06-10T22:49:44.8486203Z         "unit"
2026-06-10T22:49:44.8486297Z       ],
2026-06-10T22:49:44.8486393Z       "stages": {
2026-06-10T22:49:44.8486482Z         "doc": {
2026-06-10T22:49:44.8486576Z           "complete": false,
2026-06-10T22:49:44.8486681Z           "evidence": []
2026-06-10T22:49:44.8486768Z         },
2026-06-10T22:49:44.8486858Z         "impl": {
2026-06-10T22:49:44.8486957Z           "complete": true,
2026-06-10T22:49:44.8487049Z           "evidence": [
2026-06-10T22:49:44.8487149Z             {
2026-06-10T22:49:44.8487281Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.8487378Z               "line": 27
2026-06-10T22:49:44.8487468Z             },
2026-06-10T22:49:44.8487558Z             {
2026-06-10T22:49:44.8487693Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.8487787Z               "line": 82
2026-06-10T22:49:44.8487877Z             },
2026-06-10T22:49:44.8487964Z             {
2026-06-10T22:49:44.8488097Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.8488192Z               "line": 134
2026-06-10T22:49:44.8488284Z             },
2026-06-10T22:49:44.8488380Z             {
2026-06-10T22:49:44.8488503Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8488599Z               "line": 492
2026-06-10T22:49:44.8488690Z             },
2026-06-10T22:49:44.8488778Z             {
2026-06-10T22:49:44.8488892Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8489082Z               "line": 528
2026-06-10T22:49:44.8489171Z             }
2026-06-10T22:49:44.8489258Z           ]
2026-06-10T22:49:44.8489353Z         },
2026-06-10T22:49:44.8489448Z         "int": {
2026-06-10T22:49:44.8489553Z           "complete": false,
2026-06-10T22:49:44.8489644Z           "evidence": []
2026-06-10T22:49:44.8489735Z         },
2026-06-10T22:49:44.8489824Z         "unit": {
2026-06-10T22:49:44.8489926Z           "complete": true,
2026-06-10T22:49:44.8490020Z           "evidence": [
2026-06-10T22:49:44.8490110Z             {
2026-06-10T22:49:44.8490245Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.8490335Z               "line": 232
2026-06-10T22:49:44.8490425Z             },
2026-06-10T22:49:44.8490516Z             {
2026-06-10T22:49:44.8490645Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.8490740Z               "line": 246
2026-06-10T22:49:44.8490826Z             },
2026-06-10T22:49:44.8490927Z             {
2026-06-10T22:49:44.8491050Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.8491146Z               "line": 260
2026-06-10T22:49:44.8491238Z             },
2026-06-10T22:49:44.8491326Z             {
2026-06-10T22:49:44.8491456Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.8491548Z               "line": 274
2026-06-10T22:49:44.8491636Z             },
2026-06-10T22:49:44.8491731Z             {
2026-06-10T22:49:44.8491865Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T22:49:44.8492060Z               "line": 308
2026-06-10T22:49:44.8492151Z             },
2026-06-10T22:49:44.8492237Z             {
2026-06-10T22:49:44.8492360Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T22:49:44.8492456Z               "line": 792
2026-06-10T22:49:44.8492547Z             }
2026-06-10T22:49:44.8492642Z           ]
2026-06-10T22:49:44.8492732Z         }
2026-06-10T22:49:44.8492914Z       }
2026-06-10T22:49:44.8492999Z     },
2026-06-10T22:49:44.8493086Z     {
2026-06-10T22:49:44.8493186Z       "id": "REQ-UPD-6",
2026-06-10T22:49:44.8493961Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-10T22:49:44.8494071Z       "requiredStages": [
2026-06-10T22:49:44.8494166Z         "doc",
2026-06-10T22:49:44.8494255Z         "impl",
2026-06-10T22:49:44.8494345Z         "unit",
2026-06-10T22:49:44.8494431Z         "int"
2026-06-10T22:49:44.8494523Z       ],
2026-06-10T22:49:44.8494617Z       "stages": {
2026-06-10T22:49:44.8494708Z         "doc": {
2026-06-10T22:49:44.8494809Z           "complete": true,
2026-06-10T22:49:44.8494898Z           "evidence": [
2026-06-10T22:49:44.8494989Z             {
2026-06-10T22:49:44.8495118Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-10T22:49:44.8495213Z               "line": 3
2026-06-10T22:49:44.8495304Z             },
2026-06-10T22:49:44.8495395Z             {
2026-06-10T22:49:44.8495509Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-10T22:49:44.8495599Z               "line": 3
2026-06-10T22:49:44.8495691Z             },
2026-06-10T22:49:44.8495786Z             {
2026-06-10T22:49:44.8495938Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-10T22:49:44.8496034Z               "line": 3
2026-06-10T22:49:44.8496129Z             }
2026-06-10T22:49:44.8496219Z           ]
2026-06-10T22:49:44.8496307Z         },
2026-06-10T22:49:44.8496401Z         "impl": {
2026-06-10T22:49:44.8496491Z           "complete": true,
2026-06-10T22:49:44.8496587Z           "evidence": [
2026-06-10T22:49:44.8496678Z             {
2026-06-10T22:49:44.8496810Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8496909Z               "line": 76
2026-06-10T22:49:44.8496990Z             },
2026-06-10T22:49:44.8497075Z             {
2026-06-10T22:49:44.8497193Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8497285Z               "line": 212
2026-06-10T22:49:44.8497380Z             },
2026-06-10T22:49:44.8497465Z             {
2026-06-10T22:49:44.8497580Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.8497676Z               "line": 511
2026-06-10T22:49:44.8497766Z             },
2026-06-10T22:49:44.8497856Z             {
2026-06-10T22:49:44.8497981Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T22:49:44.8498081Z               "line": 564
2026-06-10T22:49:44.8498156Z             },
2026-06-10T22:49:44.8498248Z             {
2026-06-10T22:49:44.8498361Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8498452Z               "line": 69
2026-06-10T22:49:44.8498544Z             },
2026-06-10T22:49:44.8498639Z             {
2026-06-10T22:49:44.8498753Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8498844Z               "line": 133
2026-06-10T22:49:44.8498935Z             },
2026-06-10T22:49:44.8499096Z             {
2026-06-10T22:49:44.8499216Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8499311Z               "line": 243
2026-06-10T22:49:44.8499405Z             },
2026-06-10T22:49:44.8499500Z             {
2026-06-10T22:49:44.8499619Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8499813Z               "line": 399
2026-06-10T22:49:44.8499899Z             },
2026-06-10T22:49:44.8499990Z             {
2026-06-10T22:49:44.8500108Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8500205Z               "line": 527
2026-06-10T22:49:44.8500295Z             },
2026-06-10T22:49:44.8500384Z             {
2026-06-10T22:49:44.8500495Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8500685Z               "line": 541
2026-06-10T22:49:44.8500767Z             },
2026-06-10T22:49:44.8500853Z             {
2026-06-10T22:49:44.8500976Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8501066Z               "line": 596
2026-06-10T22:49:44.8501159Z             },
2026-06-10T22:49:44.8501248Z             {
2026-06-10T22:49:44.8501363Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8501459Z               "line": 627
2026-06-10T22:49:44.8501553Z             },
2026-06-10T22:49:44.8501643Z             {
2026-06-10T22:49:44.8501764Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8501858Z               "line": 76
2026-06-10T22:49:44.8501940Z             },
2026-06-10T22:49:44.8502026Z             {
2026-06-10T22:49:44.8502146Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8502243Z               "line": 112
2026-06-10T22:49:44.8502324Z             },
2026-06-10T22:49:44.8502420Z             {
2026-06-10T22:49:44.8502535Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8502630Z               "line": 183
2026-06-10T22:49:44.8502711Z             },
2026-06-10T22:49:44.8502792Z             {
2026-06-10T22:49:44.8502915Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8503007Z               "line": 258
2026-06-10T22:49:44.8503084Z             },
2026-06-10T22:49:44.8503169Z             {
2026-06-10T22:49:44.8503287Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8503389Z               "line": 290
2026-06-10T22:49:44.8503478Z             },
2026-06-10T22:49:44.8503573Z             {
2026-06-10T22:49:44.8503689Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8503779Z               "line": 321
2026-06-10T22:49:44.8503869Z             },
2026-06-10T22:49:44.8503961Z             {
2026-06-10T22:49:44.8504080Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8504184Z               "line": 344
2026-06-10T22:49:44.8504275Z             },
2026-06-10T22:49:44.8504362Z             {
2026-06-10T22:49:44.8504489Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8504578Z               "line": 362
2026-06-10T22:49:44.8504670Z             },
2026-06-10T22:49:44.8504754Z             {
2026-06-10T22:49:44.8504871Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8504968Z               "line": 372
2026-06-10T22:49:44.8505054Z             },
2026-06-10T22:49:44.8505153Z             {
2026-06-10T22:49:44.8505268Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8505364Z               "line": 384
2026-06-10T22:49:44.8505449Z             },
2026-06-10T22:49:44.8505544Z             {
2026-06-10T22:49:44.8505664Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8507748Z               "line": 394
2026-06-10T22:49:44.8507878Z             },
2026-06-10T22:49:44.8507969Z             {
2026-06-10T22:49:44.8508111Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8508207Z               "line": 413
2026-06-10T22:49:44.8508298Z             },
2026-06-10T22:49:44.8508387Z             {
2026-06-10T22:49:44.8508512Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8508608Z               "line": 423
2026-06-10T22:49:44.8508697Z             },
2026-06-10T22:49:44.8508789Z             {
2026-06-10T22:49:44.8508908Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8509260Z               "line": 94
2026-06-10T22:49:44.8509356Z             },
2026-06-10T22:49:44.8509443Z             {
2026-06-10T22:49:44.8509565Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8509656Z               "line": 120
2026-06-10T22:49:44.8509748Z             },
2026-06-10T22:49:44.8509834Z             {
2026-06-10T22:49:44.8509951Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8510151Z               "line": 135
2026-06-10T22:49:44.8510235Z             },
2026-06-10T22:49:44.8510325Z             {
2026-06-10T22:49:44.8510440Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8510536Z               "line": 162
2026-06-10T22:49:44.8510625Z             },
2026-06-10T22:49:44.8510717Z             {
2026-06-10T22:49:44.8510831Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8510925Z               "line": 174
2026-06-10T22:49:44.8511022Z             },
2026-06-10T22:49:44.8511113Z             {
2026-06-10T22:49:44.8511226Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8511322Z               "line": 185
2026-06-10T22:49:44.8511418Z             },
2026-06-10T22:49:44.8511508Z             {
2026-06-10T22:49:44.8511622Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8511719Z               "line": 451
2026-06-10T22:49:44.8511818Z             },
2026-06-10T22:49:44.8511903Z             {
2026-06-10T22:49:44.8512024Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8512118Z               "line": 555
2026-06-10T22:49:44.8512208Z             },
2026-06-10T22:49:44.8512296Z             {
2026-06-10T22:49:44.8512428Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.8512519Z               "line": 171
2026-06-10T22:49:44.8512611Z             },
2026-06-10T22:49:44.8512701Z             {
2026-06-10T22:49:44.8512823Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T22:49:44.8512923Z               "line": 65
2026-06-10T22:49:44.8513010Z             },
2026-06-10T22:49:44.8513100Z             {
2026-06-10T22:49:44.8513223Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T22:49:44.8513320Z               "line": 71
2026-06-10T22:49:44.8513410Z             },
2026-06-10T22:49:44.8513495Z             {
2026-06-10T22:49:44.8513620Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T22:49:44.8513715Z               "line": 77
2026-06-10T22:49:44.8513804Z             },
2026-06-10T22:49:44.8513896Z             {
2026-06-10T22:49:44.8514005Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8514100Z               "line": 778
2026-06-10T22:49:44.8514186Z             },
2026-06-10T22:49:44.8514283Z             {
2026-06-10T22:49:44.8514392Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8514492Z               "line": 795
2026-06-10T22:49:44.8514593Z             },
2026-06-10T22:49:44.8514677Z             {
2026-06-10T22:49:44.8514792Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8514884Z               "line": 838
2026-06-10T22:49:44.8514973Z             },
2026-06-10T22:49:44.8515063Z             {
2026-06-10T22:49:44.8515173Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8515268Z               "line": 981
2026-06-10T22:49:44.8515356Z             },
2026-06-10T22:49:44.8515451Z             {
2026-06-10T22:49:44.8515557Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8515657Z               "line": 1131
2026-06-10T22:49:44.8515747Z             }
2026-06-10T22:49:44.8515833Z           ]
2026-06-10T22:49:44.8515929Z         },
2026-06-10T22:49:44.8516018Z         "int": {
2026-06-10T22:49:44.8516124Z           "complete": true,
2026-06-10T22:49:44.8516220Z           "evidence": [
2026-06-10T22:49:44.8516310Z             {
2026-06-10T22:49:44.8516444Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-10T22:49:44.8516615Z               "line": 569
2026-06-10T22:49:44.8516710Z             },
2026-06-10T22:49:44.8516797Z             {
2026-06-10T22:49:44.8516925Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-10T22:49:44.8517020Z               "line": 135
2026-06-10T22:49:44.8517107Z             }
2026-06-10T22:49:44.8517197Z           ]
2026-06-10T22:49:44.8517287Z         },
2026-06-10T22:49:44.8517451Z         "unit": {
2026-06-10T22:49:44.8517544Z           "complete": true,
2026-06-10T22:49:44.8517645Z           "evidence": [
2026-06-10T22:49:44.8517736Z             {
2026-06-10T22:49:44.8517864Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8517959Z               "line": 623
2026-06-10T22:49:44.8518049Z             },
2026-06-10T22:49:44.8518144Z             {
2026-06-10T22:49:44.8518266Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8518362Z               "line": 672
2026-06-10T22:49:44.8518453Z             },
2026-06-10T22:49:44.8518547Z             {
2026-06-10T22:49:44.8518671Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T22:49:44.8518763Z               "line": 689
2026-06-10T22:49:44.8518853Z             },
2026-06-10T22:49:44.8519040Z             {
2026-06-10T22:49:44.8519196Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8519291Z               "line": 487
2026-06-10T22:49:44.8519392Z             },
2026-06-10T22:49:44.8519477Z             {
2026-06-10T22:49:44.8519601Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8519693Z               "line": 612
2026-06-10T22:49:44.8519782Z             },
2026-06-10T22:49:44.8519873Z             {
2026-06-10T22:49:44.8519989Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8520083Z               "line": 649
2026-06-10T22:49:44.8520168Z             },
2026-06-10T22:49:44.8520260Z             {
2026-06-10T22:49:44.8520379Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8520478Z               "line": 894
2026-06-10T22:49:44.8520577Z             },
2026-06-10T22:49:44.8520664Z             {
2026-06-10T22:49:44.8520785Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8520890Z               "line": 916
2026-06-10T22:49:44.8520976Z             },
2026-06-10T22:49:44.8521063Z             {
2026-06-10T22:49:44.8521180Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8521277Z               "line": 933
2026-06-10T22:49:44.8521363Z             },
2026-06-10T22:49:44.8521453Z             {
2026-06-10T22:49:44.8521572Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8521663Z               "line": 948
2026-06-10T22:49:44.8521749Z             },
2026-06-10T22:49:44.8521838Z             {
2026-06-10T22:49:44.8521959Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8522053Z               "line": 974
2026-06-10T22:49:44.8522144Z             },
2026-06-10T22:49:44.8522236Z             {
2026-06-10T22:49:44.8522359Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T22:49:44.8522454Z               "line": 457
2026-06-10T22:49:44.8522541Z             },
2026-06-10T22:49:44.8522626Z             {
2026-06-10T22:49:44.8522769Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-10T22:49:44.8522866Z               "line": 338
2026-06-10T22:49:44.8522965Z             },
2026-06-10T22:49:44.8523050Z             {
2026-06-10T22:49:44.8523166Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8523261Z               "line": 7482
2026-06-10T22:49:44.8523350Z             },
2026-06-10T22:49:44.8523435Z             {
2026-06-10T22:49:44.8523545Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8523641Z               "line": 1260
2026-06-10T22:49:44.8523730Z             },
2026-06-10T22:49:44.8523822Z             {
2026-06-10T22:49:44.8523936Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-10T22:49:44.8524142Z               "line": 130
2026-06-10T22:49:44.8524232Z             }
2026-06-10T22:49:44.8524323Z           ]
2026-06-10T22:49:44.8524413Z         }
2026-06-10T22:49:44.8524499Z       }
2026-06-10T22:49:44.8524594Z     },
2026-06-10T22:49:44.8524679Z     {
2026-06-10T22:49:44.8524781Z       "id": "REQ-UPD-7",
2026-06-10T22:49:44.8526808Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-10T22:49:44.8527028Z       "requiredStages": [
2026-06-10T22:49:44.8527123Z         "impl",
2026-06-10T22:49:44.8527218Z         "unit"
2026-06-10T22:49:44.8527308Z       ],
2026-06-10T22:49:44.8527405Z       "stages": {
2026-06-10T22:49:44.8527490Z         "doc": {
2026-06-10T22:49:44.8527595Z           "complete": false,
2026-06-10T22:49:44.8527691Z           "evidence": []
2026-06-10T22:49:44.8527790Z         },
2026-06-10T22:49:44.8527880Z         "impl": {
2026-06-10T22:49:44.8527977Z           "complete": true,
2026-06-10T22:49:44.8528081Z           "evidence": [
2026-06-10T22:49:44.8528167Z             {
2026-06-10T22:49:44.8528283Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8528382Z               "line": 1871
2026-06-10T22:49:44.8528471Z             }
2026-06-10T22:49:44.8528556Z           ]
2026-06-10T22:49:44.8528647Z         },
2026-06-10T22:49:44.8528737Z         "int": {
2026-06-10T22:49:44.8528840Z           "complete": false,
2026-06-10T22:49:44.8528936Z           "evidence": []
2026-06-10T22:49:44.8529117Z         },
2026-06-10T22:49:44.8529207Z         "unit": {
2026-06-10T22:49:44.8529300Z           "complete": true,
2026-06-10T22:49:44.8529395Z           "evidence": [
2026-06-10T22:49:44.8529484Z             {
2026-06-10T22:49:44.8529595Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8529694Z               "line": 7458
2026-06-10T22:49:44.8529789Z             }
2026-06-10T22:49:44.8529880Z           ]
2026-06-10T22:49:44.8529967Z         }
2026-06-10T22:49:44.8530057Z       }
2026-06-10T22:49:44.8530152Z     },
2026-06-10T22:49:44.8530239Z     {
2026-06-10T22:49:44.8530342Z       "id": "REQ-UPD-8",
2026-06-10T22:49:44.8532747Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-10T22:49:44.8532862Z       "requiredStages": [
2026-06-10T22:49:44.8532952Z         "impl",
2026-06-10T22:49:44.8533043Z         "unit"
2026-06-10T22:49:44.8533135Z       ],
2026-06-10T22:49:44.8533229Z       "stages": {
2026-06-10T22:49:44.8533315Z         "doc": {
2026-06-10T22:49:44.8533421Z           "complete": false,
2026-06-10T22:49:44.8533515Z           "evidence": []
2026-06-10T22:49:44.8533702Z         },
2026-06-10T22:49:44.8533783Z         "impl": {
2026-06-10T22:49:44.8533877Z           "complete": true,
2026-06-10T22:49:44.8533976Z           "evidence": [
2026-06-10T22:49:44.8534072Z             {
2026-06-10T22:49:44.8534192Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8534276Z               "line": 77
2026-06-10T22:49:44.8534367Z             },
2026-06-10T22:49:44.8534449Z             {
2026-06-10T22:49:44.8534697Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8534792Z               "line": 47
2026-06-10T22:49:44.8534873Z             },
2026-06-10T22:49:44.8534953Z             {
2026-06-10T22:49:44.8535079Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8535173Z               "line": 150
2026-06-10T22:49:44.8535254Z             },
2026-06-10T22:49:44.8535356Z             {
2026-06-10T22:49:44.8535478Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8535559Z               "line": 213
2026-06-10T22:49:44.8535656Z             },
2026-06-10T22:49:44.8535741Z             {
2026-06-10T22:49:44.8535860Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8535951Z               "line": 228
2026-06-10T22:49:44.8536042Z             },
2026-06-10T22:49:44.8536127Z             {
2026-06-10T22:49:44.8536245Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8536345Z               "line": 245
2026-06-10T22:49:44.8536425Z             },
2026-06-10T22:49:44.8536510Z             {
2026-06-10T22:49:44.8536625Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8536725Z               "line": 267
2026-06-10T22:49:44.8536819Z             },
2026-06-10T22:49:44.8536900Z             {
2026-06-10T22:49:44.8537021Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8537111Z               "line": 66
2026-06-10T22:49:44.8537201Z             },
2026-06-10T22:49:44.8537288Z             {
2026-06-10T22:49:44.8537407Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T22:49:44.8537496Z               "line": 154
2026-06-10T22:49:44.8537579Z             },
2026-06-10T22:49:44.8537669Z             {
2026-06-10T22:49:44.8537769Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8537864Z               "line": 1745
2026-06-10T22:49:44.8537946Z             },
2026-06-10T22:49:44.8538031Z             {
2026-06-10T22:49:44.8538135Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8538227Z               "line": 1818
2026-06-10T22:49:44.8538313Z             },
2026-06-10T22:49:44.8538393Z             {
2026-06-10T22:49:44.8538498Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8538595Z               "line": 1828
2026-06-10T22:49:44.8538674Z             },
2026-06-10T22:49:44.8538760Z             {
2026-06-10T22:49:44.8538862Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8539031Z               "line": 1835
2026-06-10T22:49:44.8539126Z             },
2026-06-10T22:49:44.8539212Z             {
2026-06-10T22:49:44.8539320Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8539400Z               "line": 1872
2026-06-10T22:49:44.8539487Z             },
2026-06-10T22:49:44.8539573Z             {
2026-06-10T22:49:44.8539687Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8539786Z               "line": 480
2026-06-10T22:49:44.8539883Z             },
2026-06-10T22:49:44.8539969Z             {
2026-06-10T22:49:44.8540073Z               "path": "crates/xtask/src/main.rs",
2026-06-10T22:49:44.8540160Z               "line": 494
2026-06-10T22:49:44.8540240Z             }
2026-06-10T22:49:44.8540330Z           ]
2026-06-10T22:49:44.8540407Z         },
2026-06-10T22:49:44.8540498Z         "int": {
2026-06-10T22:49:44.8540597Z           "complete": false,
2026-06-10T22:49:44.8540693Z           "evidence": []
2026-06-10T22:49:44.8540784Z         },
2026-06-10T22:49:44.8540865Z         "unit": {
2026-06-10T22:49:44.8541050Z           "complete": true,
2026-06-10T22:49:44.8541147Z           "evidence": [
2026-06-10T22:49:44.8541236Z             {
2026-06-10T22:49:44.8541361Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T22:49:44.8541453Z               "line": 476
2026-06-10T22:49:44.8541542Z             },
2026-06-10T22:49:44.8541622Z             {
2026-06-10T22:49:44.8541736Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T22:49:44.8541915Z               "line": 554
2026-06-10T22:49:44.8542010Z             },
2026-06-10T22:49:44.8542092Z             {
2026-06-10T22:49:44.8542197Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8542296Z               "line": 7460
2026-06-10T22:49:44.8542377Z             },
2026-06-10T22:49:44.8542469Z             {
2026-06-10T22:49:44.8542563Z               "path": "crates/spt/src/cli.rs",
2026-06-10T22:49:44.8542658Z               "line": 7482
2026-06-10T22:49:44.8542746Z             }
2026-06-10T22:49:44.8542836Z           ]
2026-06-10T22:49:44.8542926Z         }
2026-06-10T22:49:44.8543017Z       }
2026-06-10T22:49:44.8543107Z     }
2026-06-10T22:49:44.8543183Z   ],
2026-06-10T22:49:44.8543278Z   "findings": []
2026-06-10T22:49:44.8543371Z }
